我有一个Android应用程序,我正在使用自定义主题在主要活动本身的android清单中应用它。此活动创建一个列表视图,其中应用了样式。
如果我为该列表视图创建自定义布局,包括行本身的单独xml文件,并且我将样式直接应用于这些布局,这种样式是否会覆盖应用程序的整体样式?我试图掌握事件的层次结构,就样式和主题的工作方式而言。
我在其示例中使用它的方式是:对行应用样式,由行布局xml引用>应用整体列表视图的样式,由listview layout xml>引用;从自定义主题应用样式,由android manifest
引用的样式xml引用我是对的吗?或者我正在接近这个错误。 (仅仅是为了混淆,“>”我的意思是重要性比)
答案 0 :(得分:0)
希望我能理解你的问题......
您在styles.xml中定义的样式将始终覆盖来自android当前使用的主题的样式。
但这仅适用于您覆盖的属性。
如果你保持一个属性不受影响,android将为它提供样式,有时这会让你在对接中咬你:)
这个系统最好用这样描述: textview需要属性示例
<item name="android:textColor">#00FF00</item>
Android将首先查看原始布局。 如果找不到,它将查看您的自定义样式。 如果没有找到,它会调查android样式。
希望这有帮助。
答案 1 :(得分:0)
标准主题具有定义ListView样式的行:
<item name="listViewStyle">@android:style/Widget.ListView</item>
在你自己的主题中你可以做一个
<item name="listViewStyle">@style/MyOwnListView</item>
ListView样式中未定义的内容(拥有或默认)将是主题中定义的内容(如果已在其中定义)。
答案 2 :(得分:0)
如果您在多个位置指定了相同的属性,则下面的列表确定最终应用哪些属性。该列表按从高到低的顺序排列: