主题与TextView的默认布局参数

时间:2014-02-20 13:58:54

标签: android android-layout textview android-theme

我想默认layout_width = wrap_contentlayout_height = wrap content设置我的所有TextView。所以我尝试用以下方法修改主题文件:

<item name="android:textViewStyle">@style/TextViewStyle</item>  

 <style name="TextViewStyle" parent="@android:style/Widget.TextView">
    <item name = "android:layout_width">wrap_content</item>
    <item name = "android:layout_height">wrap_content</item>
</style>

但如果我设置TextView没有layout_width或没有layout_height,则应用会在执行时停止。

可以按我提出的方式完成吗?对于大型项目,它可以节省大量的xml“无用”行。

1 个答案:

答案 0 :(得分:0)

不幸的是,无法从主题设置布局属性(layout_ *)(请参阅Layout Parameters documentationthis answer from an Android framework engineer)。但是,您可以在样式中设置布局属性,并让每个元素引用这样的样式:

<Button style="@style/ButtonBig" android:text="my text" />

其中ButtonBig的定义如下:

<style name="ButtonBig" parent="android:Widget.Holo.Light.Button">
    <item name="android:textSize">20sp</item>
    <item name="android:layout_width">match_parent</item>
    <item name="android:layout_height">100dp</item>        
</style>