【发布时间】:2017-03-18 14:09:43
【问题描述】:
我需要在多个屏幕 (xml) 中使用具有相同属性(如宽度、高度、文本颜色、大小等)的相同小部件(按钮、编辑文本、文本视图)。因此,我为各个小部件创建了样式(一种用于按钮,一种用于编辑文本……),并在我的 CustomTheme 中定义了所有这些样式。
我的问题是
如果我也在样式中定义布局宽度/高度,并且简单地为 xml 中的按钮提供 style="@style/myButtonStyle" 工作正常,即使我没有在 xml 中提及宽度/高度(可能继承自 Style )。
如果我在没有样式属性的情况下在 xml 中提供宽度/高度,并且只是将我的自定义主题提供给活动,那么我在主题中指定的所有样式。但是我没有在 xml 中提到宽度/高度,它引发了一个异常,说你已经指定了布局宽度/高度,我已经在样式本身中指定了。
我的主题文件是
<style name="Theme.Blue" parent="android:Theme">
<item name="android:buttonStyle">@style/button222</item>
<item name="android:textViewStyle">@style/text222</item>
<item name="android:editTextStyle">@style/edittext222</item>
</style>
我的 button222 样式是
<style name="button222" parent="@android:style/Widget.Button">
<item name="android:layout_width">@dimen/mWidth</item>
<item name="android:textColor">#F56266</item>
<item name="android:textSize">20sp</item>
</style>
我将维度指定为
<dimen name="mWidth">180dip</dimen>
我在 layout.xml 中也是这样使用的
<Button android:layout_width="180dip"
android:layout_height="wrap_content"
android:text="This is large text."
/>
<Button
android:layout_height="wrap_content"
android:text="This is regular text one"
/>
<Button
style="@style/button222"
android:layout_height="wrap_content"
android:text="This is regular text."
/>
它给出了异常说指定布局宽度,我在 button222 样式中提到并尝试通过我的主题使用。
【问题讨论】: