tablayout にてタブ選択時に選択されたタブの背景色をxmlで変えたい
tablayout を つかって、タブ選択時に選択されたタブの背景色を変えたいと思っております。
xmlをつかってselectorにて state_selectedタグを使って実現しようと思ったのですが
うまく動きません。
シンプルなプログラムだと思うのですが一体何がおかしいのでしょうか。
andrid studioを入れ直してみてもうまく動きませんでした。
かれこれ3日悩んでおります。
どうかご教授ください。
環境
- windows10
- android studio 2.3
- 3.0クリーンインストールでも結果は同じ
- 実機、シュミレーターでも結果は同じでした
セレクター
<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>
アクティビティメイン.xml
<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" />
MainAcivity.java
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();
}
}
gradle
target 26
min 23
compile 'com.android.support:design:26.+'
を追加
実行結果
selectorでtrueに指定した背景色にならず、ずっとfalseの背景色になっています。
またこの環境でフォーカス時にボタン変更するようなプログラムも書いてみたのですが
state_forcusも常にfalseでtrueが取れませんでした。
よろしくお願いします。