android - 如何对齐名称 :values pairs as ListView item

标签 android android-layout android-linearlayout

我需要在 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/

相关文章:

Android - 编程风格 - RecyclerView - 在 ViewHolder 或 onBindViewHolder 中使用 SetText?

android - 文件输出流格式化?

android - 在 Android 布局中显示 3 个等高的可滚动 ListView

android - 在布局中绘制 LinearGradient

android - 更改 View 的背景颜色?

android - 如何更改PagerTabStrip中TabIndicater的颜色

java - Android - 键盘没有出现在 float 窗口中

Android - 拖屏导航

android - createBitmap --- java.lang.IllegalArgumentException : x must be < bitmap. 宽度()

Android 启动画面中心图像