android多变的需求动态排版对齐

发布于:2025-06-20 ⋅ 阅读:(24) ⋅ 点赞:(0)

由于是乙方,客户众多,写死的布局显然是不方便快速迭代版本了,所以我就基本改成了动态布局数值的展示, 所以安卓这边有些数值的排版实现上下列我全改成存储带出 动态布局。
数值要对齐,就研究了下存储过程也好实现。

ALTER FUNCTION Fun_HtmlLeftAlign
(
    @data VARCHAR(200),@keepLen INT ,@placeholder VARCHAR(20)=' '
)
RETURNS VARCHAR(200)
AS
BEGIN
DECLARE @minLen INT =LEN(@data);
IF @keepLen<@minLen
SET @keepLen=@minLen;

SET @data=@data+'ZZZZZZZZZZZZZZZZZZZZ';
SET @data=LEFT(@data,@keepLen);
SET @data=REPLACE(@data,'Z',@placeholder);
SET @data=@data
    RETURN @data
    END
GO

这样就实现了左对齐 保持 每个数值的长度 在一定的范围,由于业务上基本长度不会超过10所以我这次改的是10.

SET @info='<b>名称:</b>'+ISNULL(@X1,'')+'<b><br/>编号:</b>'+dbo.Fun_HtmlLeftAlign(CAST(@X0 AS VARCHAR(100)),10,'&ensp;')
SET @info=@info+'<b>姓名:</b>'+ISNULL(@X,'')+'<b><br/>性别:</b>'+dbo.Fun_HtmlLeftAlign(CAST(@X2 AS VARCHAR(100)),10,'&ensp;')

结果发现 我吧站位符改为0的时候是对齐的,不是0的时候差了一点点,

1750043007665.png

而数字能对齐

1750043028368.png

这个我经过研究刚开始以为是全角 半角 啥的导致,结果发现都不对,最后发现是安卓这边字体导致

<TextView
                android:id="@+id/tv_information"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:fontFamily="monospace"
      
                android:text=""
                android:textIsSelectable="true"
                android:textSize="13sp" />

加上android:fontFamily="monospace"就可以实现字母数字 等比宽度了。

最后成功实现

image.png

网站公告

今日签到

点亮在社区的每一天
去签到