【问题标题】:Changing background colour for the Selected Tab更改选定选项卡的背景颜色
【发布时间】:2017-04-24 14:53:11
【问题描述】:

这是我的屏幕布局,我想这样做,当我点击流行选项卡时,流行块应该变成蓝色。

价格、时间和持续时间标签也是如此。

我尝试过使用线性布局,但没有。

我在Text View中使用了它,垂直和水平线使用View标签,我没有使用TabLayout,为了简单起见我只是使用TextView With Background。

如果可以的话,请给我推荐一个合适的代码解决方案。

任何帮助将不胜感激。

【问题讨论】:

  • 在tablayout的xml中,添加app:tabIndicatorColor="@color/colorPrimary"
  • 我在 LinearLayout Bro 中使用过 TextView。它不是 TabLayout
  • 然后当点击该 textview 的 textview 更改颜色。
  • 哥们,你没有得到我的问题,我不想更改 textView 颜色 我想更改放置流行的流行 SQUARE 框在单击时变为蓝色。
  • “我在 LinearLayout Bro 中使用过 TextView。它不是 TabLayout” - 你不认为这可能值得一提在问题中吗?

标签: android layout textview


【解决方案1】:

在您的 xml 文件中,在 TabLayout 中添加以下行,

app:tabBackground="#0000FA"

通过这个你可以改变所选标签的颜色。

如果您使用过 TextView,那么只需简单地创建或将此方法添加到您的 java 文件中,并通过将 textview 传递给它来从每个 textviews onclick 事件中调用它。

public void changeTabColor(TextView tvSelected){
  tv1.setBackgroundColor(Color.White);
  tv2.setBackgroundColor(Color.White);
  tv3.setBackgroundColor(Color.White);

  tvSelected.setBackgroundColor(Color.Blue);
}

【讨论】:

  • 哥们,让我试试吧。
【解决方案2】:

试试这个:

public void onClick(View v) {
    switch (v.getId()) {
        case R.id.popular_tab:
             ResetTabColor();
             popular_tab.setBackgroundColor(Color.blue);
        case //Do the rest with other tab
    }
}

private void ResetTabColor(){
popular_tab.setBackgroundColor(Color.TRANSPARENT); // or white color
time_tab.setBackgroundColor(Color.TRANSPARENT);
duration_tab.setBackgroundColor(Color.TRANSPARENT);
price_tab.setBackgroundColor(Color.TRANSPARENT);

【讨论】:

    猜你喜欢
    • 2013-11-22
    • 1970-01-01
    • 2019-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多