如何以编程方式更改选项卡背景颜色?
How to change tab background color programmatically?
我正在尝试更改 selected(活动标签)的背景颜色。我的情况是默认情况下,当用户 select 选项卡获得我想要的颜色时,所有选项卡都是白色的。
我正在使用库名称 PagerSlidingTabStrip ...我到目前为止尝试的是:
在选项卡更改时,我调用此代码。它工作得很好,可以改变文本颜色。现在我想更改相同的选项卡背景颜色。
private void setSelectedTabColor(int position) {
for(int i=0; i<tabStrip.getChildCount(); i++)
{
LinearLayout view = (LinearLayout) tabStrip.getChildAt(0);
TextView textView = (TextView) view.getChildAt(i);
textView.setTextColor(getResources().getColor(R.color.black));
}
LinearLayout view = (LinearLayout) tabStrip.getChildAt(0);
TextView textView = (TextView) view.getChildAt(position);
textView.setTextColor(getResources().getColor(R.color.white));
}
通过在循环中尝试以下代码,我得到了空指针异常。
tabStrip.getChildAt(i).setBackgroundColor(getResources().getColor(R.color.dash_bar));
添加这些行以更改特定 child 的背景。
LinearLayout view = (LinearLayout) tabStrip.getChildAt(0);
TextView textView = (TextView) view.getChildAt(position);
textView.getParent().setBackgroundColor(getResources().getColor(
R.color.dash_bar));
我正在尝试更改 selected(活动标签)的背景颜色。我的情况是默认情况下,当用户 select 选项卡获得我想要的颜色时,所有选项卡都是白色的。 我正在使用库名称 PagerSlidingTabStrip ...我到目前为止尝试的是:
在选项卡更改时,我调用此代码。它工作得很好,可以改变文本颜色。现在我想更改相同的选项卡背景颜色。
private void setSelectedTabColor(int position) {
for(int i=0; i<tabStrip.getChildCount(); i++)
{
LinearLayout view = (LinearLayout) tabStrip.getChildAt(0);
TextView textView = (TextView) view.getChildAt(i);
textView.setTextColor(getResources().getColor(R.color.black));
}
LinearLayout view = (LinearLayout) tabStrip.getChildAt(0);
TextView textView = (TextView) view.getChildAt(position);
textView.setTextColor(getResources().getColor(R.color.white));
}
通过在循环中尝试以下代码,我得到了空指针异常。
tabStrip.getChildAt(i).setBackgroundColor(getResources().getColor(R.color.dash_bar));
添加这些行以更改特定 child 的背景。
LinearLayout view = (LinearLayout) tabStrip.getChildAt(0);
TextView textView = (TextView) view.getChildAt(position);
textView.getParent().setBackgroundColor(getResources().getColor(
R.color.dash_bar));