【发布时间】:2011-03-16 20:16:10
【问题描述】:
我有一个线性布局,其中每一行都以编程方式膨胀,我希望这些行在单击时表现得像 ListView。也就是说,我希望该行以与默认 ListView 完全相同的方式/颜色突出显示。我该怎么做呢?
【问题讨论】:
标签: android xml listview layout user-interface
我有一个线性布局,其中每一行都以编程方式膨胀,我希望这些行在单击时表现得像 ListView。也就是说,我希望该行以与默认 ListView 完全相同的方式/颜色突出显示。我该怎么做呢?
【问题讨论】:
标签: android xml listview layout user-interface
好的,我终于想出了如何做到这一点......基本上它是使用一个选择器来完成的在 ListView 中使用的可绘制对象:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:drawable="@android:drawable/list_selector_background" />
</selector>
并使用这个 xml 作为我的视图的背景。
所有公开的默认drawable都可以在这里找到:http://developer.android.com/reference/android/R.drawable.html
【讨论】:
我可以通过以下方式对我想要表现得像列表项的文本视图做同样的事情:
<Textview
....
android:background="@android:drawable/list_selector_background"
/>
【讨论】:
android:background="?android:attr/selectableItemBackground"。更多信息here:
This 可能是个不错的起点。
虽然,我建议您使用 ListView 本身,而不是再次实现它。
【讨论】:
如果您对此仍有疑问,请记住某些 UI 元素不可点击(RelativeLayout),因此您必须再添加一行:
<RelativeLayout
....
android:clickable="true"
...
【讨论】:
到您的列表视图设置属性
android:listSelector="@color/test"
这个测试颜色设置任何你喜欢的透明颜色。你可以使用hex transparent color创建任何透明颜色
【讨论】: