我需要在 ListView 中显示名称:值对列表。我想将值与最长的名称宽度对齐。但是在收到数据之前,名称的长度及其计数是未知的。
例如:
name1: value1
name111: value2
someOtherName: value3
----------------------next ListView Item
name3: value4
longestNameeee: value5
----------------------next ListView Item
现在,我已经创建了 Adapter 和 LinearLayout 作为项目布局,我正在添加带有名称 - 值对的内部 LinearLayouts,权重为 0.5 - 0.5(意味着值显示在布局中间之后)。 但是如何根据最长名称长度设置名称-值权重呢?
最佳答案
也许您可以考虑在您的 ListView 行布局中使用相对布局,并将名称左对齐,值右对齐?
另一种选择可能是可以使用 Paint.measureText 来测量文本长度 - 但需要设置与 textview 显示属性(textSize、texyStyle、font,...)相同的绘画属性 http://developer.android.com/reference/android/graphics/Paint.html#measureText(java.lang.String , 整数, 整数)
您应该能够使用它获得文本长度的适当测量 - 它为您提供了一个以像素为单位的六位像素,您可以使用它来设置列表行中所有名称 textView 的布局参数。
关于android - 如何对齐名称 :values pairs as ListView item,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12110815/