我需要在多个屏幕(xml)中使用具有相同属性的相同小部件(按钮、编辑框、文本视图),如宽度、高度、文本颜色、大小等。因此,我为各个小部件创建了样式(一个用于按钮,一个用于编辑框...),并在我的CustomTheme中定义了所有这些样式。
我的问题是
如果我在样式中定义了布局宽度/高度,并在xml中简单地给出style="@style/myButtonStyle",则按钮将正常工作,即使我没有在xml中指定宽度/高度(可能是从样式继承)。
如果我在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>
我的按钮222的样式是
<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样式中已经指定了,并尝试通过我的主题使用。
android:layout_height="@dimen/buttonHeight"
吗?这样怎么能缩短它呢? - woojoo666