如何改变ListView的外观?

时间:2010-12-13 19:45:19

标签: android listview

我想用ListView的外观改变三件主要的东西。 1)摆脱在项目之间打印的水平分隔线 2)更改listview中显示的测试字体大小 3)更改显示的每个项目周围的填充

看起来好像读了一段时间2)和3)应该通过更改ListView使用的TextView的这些属性来控制,但我还不知道如何做到这一点。有人可以用更多细节回答这些问题吗?

2 个答案:

答案 0 :(得分:3)

1)将分频器高度设置为0 --- setDividerHeight(0)并将分频器颜色设置为透明--- setDivider(new ColorDrawable(0x00FFFFFF))

2)如果您正在使用文本视图列表,那么您可以继续使用像ArrayAdapter这样的简单适配器,但您需要创建自定义文本视图。你可以在res / layout中添加这样的东西 test_text.xml

<TextView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/text"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize=<SIZE IN SP>
android:textColor="#FFF" />

3)在上面的textview中添加填充

<TextView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/text"
android:padding="5dip"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize=<SIZE IN SP>
android:textColor="#FFF" />

将新布局与ArrayAdapter一起使用

eg.
ArrayAdapter(Context context, int resource, int textViewResourceId, List<T> objects)

ArrayAdapter<String> myAdapter = new ArrayAdapter<String>(this, R.layout.test_text, R.id.text, myData);

答案 1 :(得分:2)

所有这些都可以通过样式进行控制。 The docs on styles解释了你需要做的一切。

简而言之,您创建了一个样式资源 - 源自您想要用作基础的任何内容 - 您可以覆盖所有相关项目,例如分隔符,填充字体大小。

然后,您可以将该样式应用于XML文件中的ListView,或者为其创建主题并在调用setContentView()之前调用setTheme()。

编辑:我应该提一下kcoppock指出的明显答案 - 如果这只是布局中的一个元素,只需修改布局文件中的特定元素。