【问题标题】:Using custom ListView adapter with default Android themes使用带有默认 Android 主题的自定义 ListView 适配器
【发布时间】:2011-06-23 11:06:24
【问题描述】:

我正在使用 ListView 在 Honeycomb 上开发应用程序。当使用普通的 ArrayAdapter 来提供 ListView 内容时,我可以传递一个内置布局,例如 Android.R.layout.simple_selectable_list_item。 This creates a clickable item with a nice fading animation when selecting an item that is consistent with the overall Honeycomb feel.

但是,如果我决定使用自己的自定义布局(或创建自定义适配器),则在关注或选择 ListView 中的项目时,我将不再有任何动画。我可以构建自己的动画,但在为 Honeycomb 开发时,为了简单和一致,我更喜欢使用默认的 Holo 主题。

我不知道如何做到这一点,并且找不到其他人与我的斗争(也许我正在搜索错误的术语,或者遗漏了一些明显的东西!)。有没有人有什么建议?我认为这涉及在布局的 XML 文件中识别某种样式或主题,但我还没有弄清楚该放在哪里或内容可能是什么。

谢谢!

【问题讨论】:

    标签: android listview themes adapter


    【解决方案1】:

    知道了:我必须为我的 ListView 删除 所有 对 android:listSelector 和 android:background 的引用。然后我加了

    android:background=?android:attr/listChoiceBackgroundIndicator
    

    到我的 ListView 行布局的顶级视图。

    【讨论】:

    • ListView 选择器由当前触摸的项下的 ListView 绘制。当您的物品具有非透明背景(它们不应该具有)时,您显然看不到这一点。您只需绘制一个项目的背景,然后一个列表在其下方绘制它的选择器,从而引入不必要的过度绘制。请记住,如果您绝对需要非透明项目背景,则列表可以在顶部绘制选择器(android:drawSelectorOnTop)。只是一些思考的食物。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-22
    • 1970-01-01
    • 2014-09-06
    • 2013-05-21
    • 2016-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多