蓝色背景 TabItem 按下时

Blue color background TabItem when pressed

我是初学者 Android 程序员。我创建了一个 TabView ,当按下选项卡项目中的任何项目时,颜色应该是灰色的,但它变成了蓝色。以前,我在导航底部菜单中遇到过这个问题。我很困惑。问题出在哪里?我在最后放了两张截图来解释我想要什么以及发生了什么。

这是我的布局:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/main_content"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true">

    <android.support.v4.view.ViewPager
        android:id="@+id/container"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_above="@id/tabs"
        android:layout_alignParentTop="true" />

    <android.support.design.widget.TabLayout
        android:id="@+id/tabs"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true">

        <android.support.design.widget.TabItem
            android:id="@+id/tabItem"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="ثبت نقدی" />

        <android.support.design.widget.TabItem
            android:id="@+id/tabItem2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="پیامک بانکی" />

        <android.support.design.widget.TabItem
            android:id="@+id/tabItem3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="نمودار" />

        <android.support.design.widget.TabItem
            android:id="@+id/tabItem4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="بیشتر" />

    </android.support.design.widget.TabLayout>

</RelativeLayout>

在图片中,按下了 پامک بانکی 按钮。

这就是我想要的:

这是我的问题。我不知道蓝色是从哪里来的。

这可能是因为您的 accentColor 是蓝色,并且您没有在 xml 中设置任何其他颜色 android 使用默认值。

试试这个来设置您的 ViewPager 和 TabLayout

// Get the ViewPager and set it's PagerAdapter so that it can display items
ViewPager viewPager = (ViewPager) findViewById(R.id.container);
PageAdapter pageAdapter = new PageAdapter(getSupportFragmentManager(), this);
viewPager.setAdapter(pageAdapter);

// Give the TabLayout the ViewPager
final TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs);
tabLayout.setupWithViewPager(viewPager);

obs:PageAdapter 必须是您的 ViewPager 适配器

然后在你的 xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 
 xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:tools="http://schemas.android.com/tools"
 android:id="@+id/main_content"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:fitsSystemWindows="true"
 tools:context=".Activity_Main">


 <android.support.v4.view.ViewPager
     android:id="@+id/container"
     android:layout_width="match_parent"
     android:layout_height="0dp"
     android:layout_above="@id/tabs"
     android:layout_alignParentTop="true" />

 <android.support.design.widget.TabLayout
     android:id="@+id/tabs"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:layout_alignParentBottom="true"
     android:tabBackground="@color/your_color"
     app:tabIndicatorColor="@color/your_color"/>

 </RelativeLayout>

我认为您可以创建客户 select 或者。转到可绘制文件夹并右键单击。然后select新建->创建DrawableResource。将文件名添加为 tab_selector。然后将以下代码添加到该文件

    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@color/tab_background_selected" android:state_selected="true"/>
    <item android:drawable="@color/tab_background_unselected"/>
</selector>

转到值->颜色文件并添加这两种颜色

<color name="tab_background_selected">#991c47</color>
<color name="tab_background_unselected">#4d8e63</color>

您可以根据自己的喜好自定义这些颜色。

然后将 app:tabBackground="@drawable/tab_selector" 添加到选项卡布局视图

<android.support.design.widget.TabLayout
    android:id="@+id/tabs"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:tabBackground="@drawable/tab_selector"
    android:layout_alignParentBottom="true">