Android TabLayout选中后颜色

阅读 82

2023-07-16

Android TabLayout选中后颜色

在Android应用开发中,TabLayout是一个常用的组件,用于实现页面导航和切换。TabLayout通常用于与ViewPager一起使用,以实现多页面的切换效果。在TabLayout中,选中某个Tab时,我们通常希望它的颜色能够与其他未选中的Tab有所区别,以达到视觉上的效果。

本文将介绍如何通过代码来设置TabLayout的选中后颜色,并提供相应的代码示例。

1. 导入依赖库

首先,在你的Android项目中的build.gradle文件中,添加TabLayout的依赖库:

implementation 'com.google.android.material:material:1.4.0'

2. 创建布局文件

在你的布局文件中,添加TabLayout组件,并与ViewPager组件进行关联。例如,你可以创建一个名为activity_main.xml的布局文件,其中包含一个TabLayout和一个ViewPager:

<androidx.constraintlayout.widget.ConstraintLayout xmlns:android=
xmlns:app=
xmlns:tools=
android:layout_width=match_parent
android:layout_height=match_parent>


<com.google.android.material.tabs.TabLayout
android:id=@+id/tabLayout
android:layout_width=match_parent
android:layout_height=wrap_content
app:tabMode=fixed
app:tabGravity=fill
app:tabIndicatorColor=@color/tabIndicatorColor
app:tabIndicatorHeight=2dp
app:tabTextColor=@color/tabUnselectedColor
app:tabSelectedTextColor=@color/tabSelectedColor
app:layout_constraintTop_toTopOf=parent />


<androidx.viewpager.widget.ViewPager
android:id=@+id/viewPager
android:layout_width=match_parent
android:layout_height=0dp
app:layout_constraintBottom_toBottomOf=parent
app:layout_constraintTop_toBottomOf=@id/tabLayout />


</androidx.constraintlayout.widget.ConstraintLayout>

注意,在TabLayout的属性中,我们可以设置tabIndicatorColor、tabTextColor和tabSelectedTextColor的值。这些属性用于指定选中和未选中Tab的颜色。

3. 创建适配器

为了与ViewPager配合使用,我们需要创建一个适配器来提供TabLayout的选项卡视图。例如,你可以创建一个名为PagerAdapter的适配器类:

public class PagerAdapter extends FragmentPagerAdapter {

private static final int NUM_TABS = 3;

public PagerAdapter(FragmentManager fragmentManager) {
super(fragmentManager, BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT);
}

@NonNull
@Override
public Fragment getItem(int position) {
// 根据位置返回对应的Fragment
switch (position) {
case 0:
return new Fragment1();
case 1:
return new Fragment2();
case 2:
return new Fragment3();
default:
throw new IllegalStateException(Invalid position: + position);
}
}

@Override
public int getCount() {
// 返回选项卡的数量
return NUM_TABS;
}
}

在适配器中,你需要根据当前选中的位置返回对应的Fragment,并指定选项卡的数量。

4. 创建Fragment

在你的项目中,你需要为每个Tab创建一个对应的Fragment来显示相应的内容。例如,你可以创建名为Fragment1、Fragment2和Fragment3的Fragment类:

public class Fragment1 extends Fragment {
// ...
}

public class Fragment2 extends Fragment {
// ...
}

public class Fragment3 extends Fragment {
// ...
}

在这些Fragment类中,你可以添加相应的布局和逻辑,用于显示和处理与每个Tab相关的内容。

5. 设置选中后的颜色

现在,我们可以通过代码来设置TabLayout选中后的颜色。你可以在Activity或Fragment的代码中,找到对应的TabLayout对象,并调用setSelectedTabIndicatorColor()setTabTextColors()setSelectedTabTextColors()方法,来设置选中后的颜色。

下面是一个示例,在Activity的代码中设置选中后的颜色:

public class MainActivity extends AppCompatActivity {

private TabLayout tabLayout;
private ViewPager viewPager;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

tabLayout = findViewById(R.id.tabLayout

精彩评论(0)

0 0 举报