android - 选择器不适用于 TabLayout

标签 android

我已经在我的自定义 View 中添加了选项卡布局,如下所示

java代码

     for (int i = 0; i < allTabs.getTabCount(); i++) {
        TabLayout.Tab tab = allTabs.getTabAt(i);
        View v = LayoutInflater.from(getActivity()).inflate(R.layout.tab_layout, allTabs, false);
        tvTabText = (TextView) v.findViewById(R.id.tab_title);
        View view = (View) v.findViewById(R.id.deviderView);
        tvTabText.setText(tab.getText());
        tab.setCustomView(v);
        if (i == 0) {
            view.setVisibility(View.GONE); // Hide last devider


        }
    }

XML

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">

<!-- Tab title -->
<TextView
    android:id="@+id/tab_title"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerInParent="true"
    android:gravity="center_horizontal"
    android:text="sdasd"
    android:padding="10dp"
    android:textStyle="bold"
    android:textColor="@drawable/tab_item_selector"
    android:textSize="@dimen/text_size_normal" />

<!-- Tab divider -->

<View
    android:id="@+id/deviderView"
    android:layout_width="1dp"
    android:layout_height="wrap_content"
    android:layout_gravity="right"
    android:layout_marginBottom="15dp"
    android:layout_marginTop="15dp"
    android:background="@android:color/white"
    android:gravity="right" />

tab_item_selector.xml

<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="true" android:color="@android:color/white" />
<item android:state_focused="true" android:color="@android:color/white" />
<item android:state_pressed="true" android:color="@android:color/white" />
<item android:color="#82c6e6" />

我已经选择了第一个标签

allTabs.addTab(allTabs.newTab().setText("CURRENT YEAR"),true);

也试试

if (i == 0) {
            view.setVisibility(View.GONE);
            tab.select();
        }

在自定义 View 中。

我也试试

allTabs.setTabTextColors(normal,selected);

这是我的 TabLayout

 <android.support.design.widget.TabLayout
    android:id="@+id/tabs"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@color/master_color"
    app:tabMode="scrollable"
    app:tabPaddingEnd="0dp"
    app:tabPaddingStart="0dp"/>

compile 'com.android.support:appcompat-v7:23.3.0'
compile 'com.android.support:design:23.3.0'

一旦 View 出现,我点击 forst 选项卡,然后选项卡将显示白色文本,但是当我释放时,然后每次在文本变为正常颜色后按下。 如果我单击第二个选项卡,然后单击第一个选项卡,它将作为一个方面正常工作。

总是加载第一个选项卡,但我无法获得第一个选项卡(选择选项卡时我想要的是白色文本)

最佳答案

你可以在你的 tabLayout 中试试这个:

app:tabTextColor="@color/gray"
app:tabSelectedTextColor="@color/white"

关于android - 选择器不适用于 TabLayout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37153749/

相关文章:

android - 如何在Android 2.1 中实现均衡器?

android - 如何从另一个 Android 应用程序启动 android 服务

java - 代号一布局问题

java - 如何在 Smali 代码的方法中将 boolean 值设置为 false

android - 如何使用 DexGuard 混淆我的 apk?

android - ABS Theme.Sherlock.Dialog 在 GingerBread 上显示对话框标题

安卓兼容性。使用 Build.VERSION_CODES 时我很困惑

android - Gradle同步问题:错误:原因:无法找到到请求目标的有效证书路径

安卓工作室 : Include library test classes in app test

android - eclipse 错误 : “Activity Name must be specified”