布局和属性,主要是TabLayout属性
<androidx.constraintlayout.widget.Group
android:id="@+id/group_video"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="visible"
app:constraint_referenced_ids="tabLayout,viewPager"/>
<com.google.android.material.tabs.TabLayout
android:id="@+id/tabLayout"
android:layout_width="800dp"
android:layout_height="70dp"
android:layout_marginLeft="50dp"
android:orientation="horizontal"
app:tabTextColor="@color/color_FEFEFE"
app:tabSelectedTextColor="@color/color_FEFEFE"
app:tabIndicatorFullWidth="false"
app:tabRippleColor="@null"
app:tabIndicatorColor="@color/color_FF8829"
app:tabIndicatorHeight="5dp"
app:tabPaddingStart="50dp"
app:tabPaddingEnd="50dp"
app:tabTextAppearance="@style/TabLayoutTextStyle"
>
<com.google.android.material.tabs.TabItem
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="已下载"/>
<com.google.android.material.tabs.TabItem
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Url在线看"/>
<com.google.android.material.tabs.TabItem
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="未下载"/>
</com.google.android.material.tabs.TabLayout>
<androidx.viewpager.widget.ViewPager
android:id="@+id/viewPager"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintTop_toBottomOf="@+id/tabLayout"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
android:layout_marginTop="18dp"
android:layout_marginLeft="30dp"/>
字体样式
<style name="TabLayoutTextStyle" parent="TextAppearance.Design.Tab">
<item name="android:textSize">32sp</item>
</style>
java简单代码
tabLayout.setupWithViewPager(mViewPager);
mViewPager.setOffscreenPageLimit(3);
mViewPager.setAdapter(adapter);
public class ViewpagerAdapter extends FragmentPagerAdapter {
private List<Fragment> mList;
private String[] mtitles;
public FileResourceViewpagerAdapter(@NonNull FragmentManager fm, List<Fragment> list , String[] titles) {
super(fm, BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT);
mList=list;
mtitles=titles;
}
@NonNull
@Override
public Fragment getItem(int position) {
return mList.get(position);
}
@Override
public int getCount() {
return mList.size();
}
@Nullable
@Override
public CharSequence getPageTitle(int position) {
return mtitles[position];
}
}