Android TabLayout選択フォント太字
1812 ワード
最近のプロジェクトには、タイトルの選択項目を太くする必要があります.プロジェクトで使用されているのはTabLayoutであり、TabLayoutには対応する属性サポートがないので、自分で方法を考えるしかありません.
ネットで半日探したところ、TabLayoutが基本的に使っていることに気づき、自分の欲しいものが見つからず、別の角度から解決するしかなく、TabLayoutは選択したUIをカスタマイズできるので、この方面から着手することができます.
最後の解決策は、TabLayoutにリスニングを追加し、リスニングで選択したUI、コード、レイアウトファイルをカスタマイズすることです.
使用するレイアウトファイルは次のとおりです.
リスニングはsetupWithViewPagerメソッドの前に追加する必要があります.そうしないとバグが発生します.
ネットで半日探したところ、TabLayoutが基本的に使っていることに気づき、自分の欲しいものが見つからず、別の角度から解決するしかなく、TabLayoutは選択したUIをカスタマイズできるので、この方面から着手することができます.
最後の解決策は、TabLayoutにリスニングを追加し、リスニングで選択したUI、コード、レイアウトファイルをカスタマイズすることです.
tablayoutTablayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
View view = tab.getCustomView();
if (null == view) {
tab.setCustomView(R.layout.custom_tab_layout_text);
}
TextView textView = tab.getCustomView().findViewById(android.R.id.text1);
textView.setTextColor(tablayoutTablayout.getTabTextColors());
textView.setTypeface(Typeface.DEFAULT_BOLD);
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
View view = tab.getCustomView();
if (null == view) {
tab.setCustomView(R.layout.custom_tab_layout_text);
}
TextView textView = tab.getCustomView().findViewById(android.R.id.text1);
textView.setTypeface(Typeface.DEFAULT);
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
});
使用するレイアウトファイルは次のとおりです.
リスニングはsetupWithViewPagerメソッドの前に追加する必要があります.そうしないとバグが発生します.