2016-10-16 12 views
0

こんにちはからタブの色を変えることができるタイトルが同じように私は、これは簡単であるべきと確信しているが、それは私のために働いていない悲しいかな、私はなどonTabSelectedのような派手なものを探していませんよ私はテーマに基づいてウィジェット全体の色を設定したいと思っていますが、現在は次のことをしようとしていますが、正しくないかどうかはわかりませんがアンドロイドどのように私は、スタイルやテーマ

これは私のようですそれはですが、私が試した第二の方法は何の喜びだったよう

<item name="tabBackground">@color/colorPinkPrimary</item> 

必要がありますが、私は2つの方法とどちらも仕事の私のテーマに本を追加しようとしました、第一の方法は、ちょうど私のテーマに直接これを追加しました〜へ別のテーマに

<style name="CustomTabLayoutStylePink" parent="Base.Widget.Design.TabLayout"> 
    <item name="tabSelectedTextColor">@color/selected_textPink</item> 
    <item name="tabIndicatorColor">@color/colorPinkAccent</item> 
    <item name="tabTextAppearance">@style/CustomTabTexStylePink</item> 
    <item name="tabBackground">@color/colorPinkPrimary</item> 
</style> 

を追加し、このように私のテーマからそれを参照する作業を行い

<item name="android:tabWidgetStyle">@style/CustomTabLayoutStylePink</item> 

1を(ちょうど私は、これが最善の方法かさえ可能であれば知らない繰り返すために、それはちょうど見えました)

<item name="android:background">@color/colorPinkPrimary</item> 

であるが、これはまたしても好みの活動textviewsとまで私の全体のアプリ内のすべてのビューのために働く誰もがここに

私を助けることができるように

答えて

1

は、あなたのXMLファイルではなく、スタイル内にある必要があります。

<android.support.design.widget.TabLayout 
    ... 
    app:tabBackground="@color/colorPinkPrimary" 
    ... 
/> 
+0

私はそうすることができますが、私はそれをテーマにしたいと思っています。テーマを選択して色を変更するオプションがあるので、プログラムで変更する必要がありますこれはテーマに基づいています –

1

OKので、私が望んでいたことは可能ではなかった代わりに適用されるべきものをテーマに記録する優先順位を設定アイブ、そしてどのようなテーマに応じて選択され、それに応じてこの

private void setupTabBackground(){ 

    SharedPreferences sharedPreferences = PreferenceManager 
      .getDefaultSharedPreferences(getApplicationContext()); 
    // Create a new boolean and preference and set it to true 
    prefThemeString = sharedPreferences.getString("THEME SELECTED","BLUE"); 
    switch (prefThemeString){ 
     case "BLUE": 
      tabLayout.setBackgroundColor(getResources().getColor(R.color.colorPrimaryBlue)); 
      break; 
     case "PINK": 
      tabLayout.setBackgroundColor(getResources().getColor(R.color.colorPinkPrimary)); 
      break; 
    } 

} 
のようなタブに色を付けます

私もこのアクティビティでは共有の設定リスナーが必要だと思いますが、あとでそれを扱うことができます

関連する問題