当前位置: 首页 > 知识库问答 >
问题:

Android:选择ListView后保持蓝色背景

水昊阳
2023-03-14

当我触摸一个物品时,只要按下它,它就会闪烁蓝色。我想保持蓝色直到另一个项目被选中,就像Nexus7上的Gmail应用一样。

最干净的方法是什么?我宁愿避免手动设置背景,我假设有一种方法可以将一个元素标记为“活动的”元素,并相应地将其主题化。

共有1个答案

钦高峯
2023-03-14

最干净的方法是什么?

您正在寻找的是已知的“激活”状态。要使其工作:

步骤1:在res/values-v11/中,拥有一个实现activated的样式资源。例如,对于一个定义了AppTheme声明的新项目,可以使用如下内容:

<resources>

    <style name="AppTheme" parent="android:Theme.Holo.Light"></style>

    <style name="activated" parent="AppTheme">
        <item name="android:background">?android:attr/activatedBackgroundIndicator</item>
    </style>

</resources>
<resources>

    <style name="AppTheme" parent="android:Theme.Light"/>

    <style name="activated" parent="AppTheme"/>

</resources>

步骤3:在ListView中的行的布局XML资源中,将style=“@style/activated”添加到根元素的属性列表中

步骤4:将ListView设置为单选项列表,例如ListFragment中的以下行:

getListView().setChoiceMode(ListView.CHOICE_MODE_SINGLE);

您可以在此示例项目、此示例项目和此示例项目中看到这一点。有关前两个示例的更多背景信息,请参阅以下问题:Gmail三片段动画场景的完整工作示例?

 类似资料:
  • 问题内容: 我有一个ListView子类,当上下文操作栏(CAB)处于活动状态时,我可以对其进行选择。CAB设置为事件的回调: 很好,并且ListView可以按预期工作,当前选中的项目在触摸时保持突出显示。 当我关闭CAB时, 我希望ListView返回正常状态(即Touch模式) 。问题是,无论我尝试清除哪种方法,最后选择的项目都会无限期突出显示: 有什么建议? 问题答案: 出现此问题的主要原因

  • 嗨,我想让我的线性布局像按钮一样工作。我的意思是,当状态改变时,我试图改变它的背景色。我使用选择器来解决它,但它不起作用。 我寻找解决方案,他们只说添加可点击属性。我已经做过了。 我的LinearLayout包含两个LinearLayout,每个LinearLayout包含9个文本视图。它们完全填满了我的直线布局。 我想到的是它的孩子正在吸收点击事件,我的线性布局不会将其状态更改为按下。 因此,我

  • 问题内容: 我有一个列表视图,大约有200个项目,我为复选框实现了一个自定义ArrayAdapter。我使用SparseBooleanArray来存储盒子的值。 所有这些工作正常,但我似乎无法以图形方式更新复选框的检查。如果用户单击,则选中该框。但是,如果我在代码中调用setChecked,则它对框本身没有影响(因此,即使其值为true,也不会对其进行打勾)。 我通过尝试将所有框都设置为true并

  • android L开发人员预览版中的标准列表视图选择器使用颜色控制亮点用于触摸的涟漪效果,并且在不聚焦状态下具有透明背景。 我想定义一个项目,它有一个彩色背景,并且仍然用相同的高亮颜色显示触摸时的涟漪效果。现在,如果我定义以下可绘制图形: 它起作用,但是纹波在 ListVIEW 项中间开始,不管触摸位置如何。如果我在 之外使用相同的背景,例如,对于 ,其工作原理与预期相同(纹波从触摸位置开始)。

  • 问题内容: 任何答案如何设置所选单元格的背景色? 问题答案: 斯威夫特4.2 对于多个选择,您需要将属性设置为 true 。 myTableView.allowsMultipleSelection = true 如果您将 UITableViewCell 子类化,则可以在自定义单元格类中重写方法。

  • 问题内容: 我有两个,一个包含一个由选择查询()填充的客户端列表,另一个包含选定的客户端的详细信息()。我想在显示细节的同时让客户保持选中状态。 XML: Java: 问题答案: 若要在按下时保持列表视图项目的颜色,请在列表视图项目布局中包括以下行: 然后在这样的文件夹中定义: 最后,将此包含在你的中: 这样,在任何时候都只能选择一项。你可以使用以下方式定义颜色值res/values/colors