【问题标题】:How to avoid a duplicate style item?如何避免重复的样式项?
【发布时间】:2013-05-07 13:12:15
【问题描述】:

如何避免下例中出现重复的样式项?

我有 textSize 30sp 的风格 - TextStyle

<style name="TextStyle">
     <item name="android:textSize">30sp</item>
</style>

我在下面的样式中使用相同的textSize 30sp。有没有什么方法可以应用textsize- 而不需要重复编写样式?

<style name="bottomText">
    <item name="android:textSize">30sp</item>
    <item name="android:layout_width">fill_parent</item>
    <item name="android:layout_height">150dp</item>
</style>

【问题讨论】:

    标签: android android-layout android-styles


    【解决方案1】:

    只要让一个 Style 继承另一个 Style:

     <style name="bottomText" parent="TextStyle">
          <item name="android:layout_width">fill_parent</item>
          <item name="android:layout_height">150dp</item>
      </style>
    

    样式“bottomText”然后具有在“TextStyle”中定义的所有属性,但仍然可以在bottomText中被覆盖。

    【讨论】:

      【解决方案2】:
      <style name="TextStyle">
          <item name="android:textSize">30sp</item>
      </style>
      
      <style name="bottomText" parent="@style/TextStyle">
        <item name="android:layout_width">fill_parent</item>
        <item name="android:layout_height">150dp</item>
      </style>
      
      <style name="boldText" parent="@style/bottomText">
        <item name="android:textStyle">bold</item>
      </style>
      

      另一种方法:

      <style name="bottomText.BoldText">
        <item name="android:textStyle">bold</item>
      </style>
      

      在最后两种情况下,boldText 继承自定义 android:layout_widthandroid:layout_height 的底部文本

      【讨论】:

        【解决方案3】:
        <style name="TextStyle">
                <item name="android:textSize">30sp</item>
           </style>
        
        <style name="bottomText" parent="@style/TextStyle">
              <item name="android:layout_width">fill_parent</item>
              <item name="android:layout_height">150dp</item>
          </style>
        

        让bootomText的样式继承TextStyle

        http://developer.android.com/guide/topics/ui/themes.html#DefiningStyles

        【讨论】:

        • 文字加粗?? android中TextView上是否有粗体attr?如果你只想设置文字属性,可以看这篇帖子stackoverflow.com/questions/3297437/…
        • 当然,TextView 的android:textStyle 属性有一个bold 值。
        【解决方案4】:

        据我所知,您不需要第二种样式,因为您需要在 xml 中设置 layout_widthlayout_height。您可以在创建layout 时设置该高度和宽度,然后使用style="@styles/TextStyle"。如果有原因你不能这样做,请更好地解释问题

        【讨论】:

          猜你喜欢
          • 2014-08-02
          • 1970-01-01
          • 1970-01-01
          • 2020-10-17
          • 1970-01-01
          • 1970-01-01
          • 2021-12-11
          • 2017-04-26
          • 1970-01-01
          相关资源
          最近更新 更多