gpt4 book ai didi

android - 以 Android 的风格覆盖 "items"。

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:40:21 28 4
gpt4 key购买 nike

我有一个包含主题、属性、样式、颜色,当然还有代码的 Android 库。

对于分隔符的高度、项目的颜色等。我可以使用 dimensions.xml 覆盖尺寸,使用 colors.xml 覆盖颜色(单独保留布局、主题和样式)。

但是,如果我有一个使用 Android 的 list_selector_background 的 ListView,并且我还有另一个 Activity 使用此选择器作为可按下的 TextView,除了在代码中覆盖它之外,我无法通过使用?style:attrib 语法,但我看不出它有什么帮助

我目前拥有的最简单且最快的解决方案是创建样式:

<style name="ResultsListViewStyle" >
<item name="android:listSelector">@android:drawable/list_selector_background</item>
</style>

然后将上面的 xml 复制粘贴到我的实际项目 style.xml 并在那里更改选择器。这还不错,但是我确实需要为使用此选择器的每个项目执行此操作...

最佳答案

由于没有人选择手套,最终我找到了解决方案,确实是一种属性。
解决方案:

  1. 在您的 attrs.xml 中为您需要的值创建一个条目,例如对于像选择器这样的 drawbale 使用:<attr name="ListResultSelector" format="reference" />

  2. 在您的 theme.xml 中定义您的主题,如果该属性是您唯一的属性并且您希望将 Android 普通主题作为您的主题,您可以使用:

    <style name="Theme" parent="@android:style/Theme.NoTitleBar">
    <item name="ListResultSelector">@android:drawable/list_selector_background</item>
    </style>
  3. 如果您想在特定应用程序中覆盖,您可以简单地继承“主题”(<style name="Theme.newTheme">) 并在那里更改该特定属性。

  4. 在您的样式中,您可以定义以下而不是定义可绘制对象:<....android:background="?attrib:ListResultSelector" ../>

  5. 将主题应用于您的申请或相关 Activity

通过这种方式,我不需要覆盖整个样式,只需要覆盖其中的特殊属性,如可绘制对象、字体等。因此,如果我需要更改原始样式中的某些内容并且我希望它同时影响旧应用程序和新应用程序,我不需要执行两次。

关于android - 以 Android 的风格覆盖 "items"。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6763956/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com