📜  tablayout 依赖 (1)

📅  最后修改于: 2023-12-03 15:20:27.055000             🧑  作者: Mango

TabLayout 依赖

TabLayout 是一个用于 Android 应用程序 UI 的 Material Design 标准控件,用于显示切换视图,如选项卡。 它非常适合在 ViewPager 中使用,但也可以与其他视图一起使用。

依赖

要使用 TabLayout 控件,需要在 Gradle 文件中添加以下依赖项:

implementation 'com.google.android.material:material:1.3.0'
使用
布局文件中添加 TabLayout 和 ViewPager
<com.google.android.material.tabs.TabLayout
    android:id="@+id/tab_layout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:tabGravity="fill"
    app:tabMode="fixed" />

<androidx.viewpager.widget.ViewPager
    android:id="@+id/view_pager"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />
在 Activity 或 Fragment 中设置 TabLayout 和 ViewPager
TabLayout tabLayout = findViewById(R.id.tab_layout);
ViewPager viewPager = findViewById(R.id.view_pager);

viewPager.setAdapter(new MyPagerAdapter(getSupportFragmentManager()));
tabLayout.setupWithViewPager(viewPager);
创建 PagerAdapter
private static class MyPagerAdapter extends FragmentPagerAdapter {
    private static final int NUM_PAGES = 3;

    public MyPagerAdapter(FragmentManager fm) {
        super(fm, BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT);
    }

    @Override
    public Fragment getItem(int position) {
        return MyFragment.newInstance(position);
    }

    @Nullable
    @Override
    public CharSequence getPageTitle(int position) {
        return "Tab " + position;
    }

    @Override
    public int getCount() {
        return NUM_PAGES;
    }
}
创建 Fragment
public class MyFragment extends Fragment {
    private static final String ARG_TAB_POSITION = "ARG_TAB_POSITION";

    private int mTabPosition;

    public static MyFragment newInstance(int tabPosition) {
        MyFragment fragment = new MyFragment();
        Bundle args = new Bundle();
        args.putInt(ARG_TAB_POSITION, tabPosition);
        fragment.setArguments(args);
        return fragment;
    }

    @Override
    public void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        if (getArguments() != null) {
            mTabPosition = getArguments().getInt(ARG_TAB_POSITION, 0);
        }
    }

    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.fragment_tab, container, false);
        TextView textView = rootView.findViewById(R.id.text_view);
        textView.setText("Tab " + mTabPosition);
        return rootView;
    }
}
结论

以上是 TabLayout 控件的基本用法。 开发人员可以根据需要进行修改和调整,以实现他们想要的自定义样式和功能。