<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/settings_unpressed" android:state_focused="false" android:state_pressed="false" android:state_selected="false"/>
<item android:drawable="@drawable/settings_unpressed" android:state_focused="false" android:state_pressed="false" android:state_selected="true"/>
<!-- Focused states -->
<item android:drawable="@drawable/settings_unpressed" android:state_focused="true" android:state_pressed="false" android:state_selected="false"/>
<item android:drawable="@drawable/settings_unpressed" android:state_pressed="false" android:state_selected="true"/>
<item android:drawable="@drawable/list_selector_pressed" android:state_pressed="true"/>
<item android:drawable="@android:color/transparent"/>
</selector>
我有一个圆角的listView,当我尝试滚动我的listView时,边框变得尖锐(如矩形)。当我们滚动listView时,有人能告诉我如何调用状态。我在上面使用代码但没有结果,也许我应该有另一个状态?
答案 0 :(得分:1)
我找到了解决方案。
设置android:cacheColorHint="#00000000"
和android:scrollingCache="false"
不是。
答案 1 :(得分:0)
以这种方式是不可能的。您需要为顶部项目,中间项目,底部项目以及列表只有1个项目提供不同的可绘制资源。 然后在你的自定义适配器中,你需要改变你的getView:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
//...
if (position == 0 && entry_list.size() == 1) {
view.setBackgroundResource(R.drawable.selector_rounded_corner);
} else if (position == 0) {
view.setBackgroundResource(R.drawable.selector_rounded_corner_top);
} else if (position == entry_list.size() - 1) {
view.setBackgroundResource(R.drawable.selector_rounded_corner_bottom);
} else {
view.setBackgroundResource(R.drawable.selector_middle);
}
//...
}
选中tutorial,这很简单,也很好。
答案 2 :(得分:0)
您可以将listView的背景设置为圆角的drawable,然后为每个行项留下一些余量。列表视图的整个内容都在一个圆角视图中