39115


tablayout を つかって、タブ選択時に選択されたタブの背景色を変えたいと思っております。

xmlをつかってselectorにて state_selectedタグを使って実現しようと思ったのですが  
うまく動きません。

シンプルなプログラムだと思うのですが一体何がおかしいのでしょうか。  
andrid studioを入れ直してみてもうまく動きませんでした。

かれこれ３日悩んでおります。

どうかご教授ください。

**環境**

  * windows10 
  * android studio 2.3 
    * 3.0クリーンインストールでも結果は同じ
    * 実機、シュミレーターでも結果は同じでした

**セレクター**

[code]

    <selector xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:state_selected="true"　android:drawable="@android:color/holo_red_dark" />
        <item android:drawable="@android:color/holo_purple" />
    </selector>
    
[/code]

**アクティビティメイン.xml**

[code]

        <android.support.design.widget.TabLayout
            android:id="@+id/tab_layout"
            android:layout_width="match_parent"
            android:layout_height="20dp"
            android:background="@drawable/selector_tab"
            app:tabSelectedTextColor="@android:color/holo_orange_dark"
            app:tabTextColor="@android:color/background_dark"
            tools:layout_editor_absoluteX="8dp"
            tools:layout_editor_absoluteY="0dp" />
    
[/code]

**MainAcivity.java**

[code]

    package com.example.user.elementtest;
    
    import android.os.Bundle;
    import android.support.design.widget.TabLayout;
    import android.support.v7.app.AppCompatActivity;
    
    public class MainActivity extends AppCompatActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            TabLayout tabLayout = (TabLayout)findViewById(R.id.tab_layout);
    
            tabLayout.addTab(tabLayout.newTab().setText("タブ1"));
            tabLayout.addTab(tabLayout.newTab().setText("タブ2"));
            tabLayout.addTab(tabLayout.newTab().setText("タブ3"));
    
            tabLayout.getTabAt(0).select();
        }
    }
    
[/code]

**gradle**

target 26  
min 23

`compile 'com.android.support:design:26.+'`を追加

**実行結果**

selectorでtrueに指定した背景色にならず、ずっとfalseの背景色になっています。

またこの環境でフォーカス時にボタン変更するようなプログラムも書いてみたのですが  
state_forcusも常にfalseでtrueが取れませんでした。

よろしくお願いします。


CC BY-SA 3.0
2017-10-28T08:48:10.857
39100
2017-10-29T11:30:42.280
2017-10-28T16:24:31.980
3068
25956
question
android
tablayout にてタブ選択時に選択されたタブの背景色をxmlで変えたい


実際に試していませんが、stackoverflowに同じような[質問](https://stackoverflow.com/questions/31640563/how-
do-i-change-a-tab-background-color-when-using-tablayout)がありました。  
質問にあるコードと見比べたところ、tabの背景色を変更するためには

app:tabBackground

を使うべきなのではないかと思います。  
試してみてください~


CC BY-SA 3.0
2017-10-29T05:03:43.033
39115
2017-10-29T11:30:42.280
2017-10-29T11:30:42.280
24823
24823
39100
answer