2017-02-20 2 views
1

Я прочитал о применении стиля для всего приложения в AndroidManifest, но не нашел, как применять стиль в линейной компоновке.Как применять общий стиль только для одного LinearLayout

Например, я хочу изменить: размер, отступы и текст правка для всех этих TextViews:

<LinearLayout 
     android:orientation="horizontal" 
     android:layout_height="0dp" 
     android:layout_width="match_parent" 
     android:layout_weight="30" 
     style="@style/ItemTransacationHeader"> 
     <!--android:theme="@style/ItemTransacationHeader">--> 


     <TextView 
      android:text="Client" 
      android:layout_width="0dp" 
      android:layout_height="match_parent" 
      android:id="@+id/textView8" 
      android:layout_weight="10" 
      /> 

     <TextView 
      android:text="Quantity" 
      android:layout_width="0dp" 
      android:layout_height="match_parent" 
      android:id="@+id/textView9" 
      android:layout_weight="10" 
      /> 

     <TextView 
      android:text="Product Value" 
      android:layout_width="0dp" 
      android:layout_height="match_parent" 
      android:id="@+id/textView12" 
      android:layout_weight="10" 
      /> 


    </LinearLayout> 

поэтому я создали стиль

<style name="ItemTransacationHeader" parent="android:Theme"> 
    <item name="android:textSize">10dp</item> 
    <item name="android:textAlignment">textStart</item> 
    <item name="android:padding">4dp</item> 
</style> 

и я пытался в различном способе применения этот стиль для LinearLayout

style="@style/ItemTransacationHeader" 
android:theme="@style/ItemTransacationHeader" 
app:theme="@style/ItemTransacationHeader" 

, но я не знаю, насколько это возможно (я полагаю, вы s это) и как я могу это достичь

ответ

1
<LinearLayout 
    android:orientation="horizontal" 
    android:layout_height="0dp" 
    android:layout_width="match_parent" 
    android:layout_weight="30"> 

    <TextView 
     android:text="Client" 
     android:layout_width="0dp" 
     android:layout_height="match_parent" 
     android:id="@+id/textView8" 
     android:layout_weight="10" 
     style="@style/ItemTransacationHeader"/> 

    <TextView 
     android:text="Quantity" 
     android:layout_width="0dp" 
     android:layout_height="match_parent" 
     android:id="@+id/textView9" 
     android:layout_weight="10" 
     style="@style/ItemTransacationHeader"/> 

    <TextView 
     android:text="Product Value" 
     android:layout_width="0dp" 
     android:layout_height="match_parent" 
     android:id="@+id/textView12" 
     android:layout_weight="10" 
     style="@style/ItemTransacationHeader"/> 

</LinearLayout> 
0

Вам необходимо установить @style за каждые TextView отдельно.

0

Создать стиль для вашего TextView (вы сделали этот шаг, переименованный для ясности)

<style name="AppTextStyle" parent="android:Theme"> 
    <item name="android:textSize">10dp</item> 
    <item name="android:textAlignment">textStart</item> 
    <item name="android:padding">4dp</item> 
</style> 

определить его как стиль вашего TextView в теме вашего приложения:

<style name="AppTheme" parent="Theme.AppCompat.Light"> 
    ... 
    <item name="android:textViewStyle">@style/AppTextStyle</item> 
</style> 

Все ваши TextViews в действиях с этой темой теперь должен использовать AppTextStyle.

См существующий вопрос: Setting global styles for Views in Android

Смежные вопросы