如何以编程方式更改选项卡背景颜色?

时间:2015-11-24 12:50:33

标签: android tabs pagerslidingtabstrip

我正在尝试更改所选(活动标签)的背景颜色。我的情况是默认情况下,当用户选择它获得我想要的颜色的选项卡时,所有选项卡都是白色的。 我使用的是库名 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));

1 个答案:

答案 0 :(得分:2)

添加这些行以更改特定孩子的背景。

LinearLayout view = (LinearLayout) tabStrip.getChildAt(0);      
TextView textView = (TextView) view.getChildAt(position);
textView.getParent().setBackgroundColor(getResources().getColor(
              R.color.dash_bar));