使用自定义ListView适配器与默认Android主题

6
我正在Honeycomb上开发一个带有ListView的应用程序。当使用普通的ArrayAdapter来提供ListView内容时,我可以传递内置布局,例如Android.R.layout.simple_selectable_list_item。这将创建一个可点击的项目,并在选择项目时产生漂亮的淡入淡出动画,与整体的Honeycomb风格一致。
然而,如果我决定使用自己的自定义布局(或创建自定义适配器),则在ListView中聚焦或选择项目时不再有任何动画效果。我可以构建自己的动画,但出于简单和一致性的考虑,我更喜欢在为Honeycomb开发时使用默认的Holo主题。
我不知道该怎么做,也没有找到其他人有我的困境(也许我搜索了错误的术语,或者错过了一些显而易见的东西!)。有人有什么建议吗?我想这涉及在布局的XML文件中识别某种样式或主题,但我还没有弄清楚要放在哪里或内容可能是什么。
谢谢!
1个回答

6
我明白了:我必须删除我的ListView中所有对android:listSelector和android:background的引用。然后我添加了...
android:background=?android:attr/listChoiceBackgroundIndicator

对于ListView行布局,我希望你能提供高层次的视图。


1
ListView选择器是由当前触摸项下的ListView绘制的。当您的项目具有非透明背景(它们不应该有)时,您显然看不到它。您只需绘制一个项目的背景,列表就会在其下面绘制其选择器,引入不必要的过度绘制。请记住,如果您绝对需要非透明的项目背景,则列表可以在顶部绘制选择器(android:drawSelectorOnTop)。这只是一些思考的食物。 - EvilDuck

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接