ras*_*a67 34 android android-tabs android-tablayout
我正在使用android.support.widget.TabLayoutTab视图,我想从代码(而不是从xml或通过样式)更改选定的选项卡文本颜色.我怎样才能做到这一点 ?
Sha*_*n_B 72
如果您使用的是设计支持库,请将此代码添加到选项卡活动中.
tabLayout.setSelectedTabIndicatorColor(Color.parseColor("#FF0000"));
tabLayout.setSelectedTabIndicatorHeight((int) (5 * getResources().getDisplayMetrics().density));
tabLayout.setTabTextColors(Color.parseColor("#727272"), Color.parseColor("#ffffff"));
Run Code Online (Sandbox Code Playgroud)
这将在选项卡活动中设置选项卡文本颜色以及选项卡指示器颜色.
Moh*_*ani 61
使用XML非常简单.只需在选项卡布局中添加以下2个属性即可.
app:tabSelectedTextColor="@color/color_primary_text"
app:tabTextColor="@color/color_secondary_text"
Run Code Online (Sandbox Code Playgroud)
所以,你的代码看起来像这样.
<android.support.design.widget.TabLayout
android:id="@+id/tab_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentStart="true"
android:layout_gravity="bottom"
android:background="@color/button_background"
android:fillViewport="true"
app:tabBackground="@drawable/fixed_bottom_button"
app:tabIndicatorColor="@color/color_primary_text"
app:tabMode="fixed"
app:tabSelectedTextColor="@color/color_primary_text"
app:tabTextColor="@color/color_secondary_text" />
Run Code Online (Sandbox Code Playgroud)
小智 12
请查看以下答案
tabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
View view = tab.getCustomView();
RelativeLayout relativeLayout = (RelativeLayout) view.findViewById(R.id.layout_background);
relativeLayout.setBackgroundColor(ContextCompat.getColor(getActivity(), R.color.white));
TypefacedTextView selectedText = (TypefacedTextView) view.findViewById(R.id.txt_tab_name);
selectedText.setTextColor(ContextCompat.getColor(getActivity(), R.color.colorPrimary));
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
View view = tab.getCustomView();
RelativeLayout relativeLayout = (RelativeLayout) view.findViewById(R.id.layout_background);
relativeLayout.setBackgroundColor(ContextCompat.getColor(getActivity(), R.color.colorPrimary));
TypefacedTextView selectedText = (TypefacedTextView) view.findViewById(R.id.txt_tab_name);
selectedText.setTextColor(ContextCompat.getColor(getActivity(), R.color.white));
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
});
Run Code Online (Sandbox Code Playgroud)
其中tabLayout是TabLayout类的对象
最好用“ com.google.android.material:material:1.0.0”更新库。然后使用下面的代码,
在 XML 属性中
<com.google.android.material.tabs.TabLayout
android:id="@+id/tab_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:tabIndicatorColor="@color/white"
app:tabBackground="@color/colorAccent"
app:tabSelectedTextColor="@color/white"
app:tabTextColor="@color/white"
app:tabMode="scrollable" />
Run Code Online (Sandbox Code Playgroud)
在 Kotlin 中以编程方式
(tab_layout as TabLayout).setBackgroundColor(ContextCompat.getColor(mContext, R.color.colorPrimary))
(tab_layout as TabLayout).setSelectedTabIndicatorColor(ContextCompat.getColor(mContext, R.color.white))
(tab_layout as TabLayout).setTabTextColors(ContextCompat.getColor(mContext, R.color.white),
ContextCompat.getColor(mContext, R.color.white))
Run Code Online (Sandbox Code Playgroud)
小智 5
我知道这可能有点晚了,但这里有更简单的代码:
tabLayout.setTabTextColors(getResources().getColor(R.color.blue_200), getResources().getColor(R.color.white));
Run Code Online (Sandbox Code Playgroud)
第一个值是默认文本颜色,第二个值是选定的选项卡文本颜色。
| 归档时间: |
|
| 查看次数: |
58900 次 |
| 最近记录: |