由于是乙方,客户众多,写死的布局显然是不方便快速迭代版本了,所以我就基本改成了动态布局数值的展示, 所以安卓这边有些数值的排版实现上下列我全改成存储带出 动态布局。
数值要对齐,就研究了下存储过程也好实现。
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,' ')
SET @info=@info+'<b>姓名:</b>'+ISNULL(@X,'')+'<b><br/>性别:</b>'+dbo.Fun_HtmlLeftAlign(CAST(@X2 AS VARCHAR(100)),10,' ')
结果发现 我吧站位符改为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