要实现Android AppBarLayout与标签和ViewPager的结合,可以使用TabLayout和ViewPager来创建标签和滑动页面,并将它们放在AppBarLayout中。
首先,在布局文件中添加AppBarLayout,TabLayout和ViewPager:
接下来,在Activity或Fragment中,设置TabLayout和ViewPager的适配器,并将它们连接起来:
TabLayout tabLayout = findViewById(R.id.tabLayout);
ViewPager viewPager = findViewById(R.id.viewPager);
// 创建适配器
PagerAdapter adapter = new PagerAdapter(getSupportFragmentManager(), FragmentPagerAdapter.BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT);
// 添加页面和标签
adapter.addFragment(new Fragment1(), "标签1");
adapter.addFragment(new Fragment2(), "标签2");
adapter.addFragment(new Fragment3(), "标签3");
// 设置适配器
viewPager.setAdapter(adapter);
// 将TabLayout与ViewPager关联起来
tabLayout.setupWithViewPager(viewPager);
最后,创建PagerAdapter类来管理页面和标签:
public class PagerAdapter extends FragmentPagerAdapter {
private final List fragmentList = new ArrayList<>();
private final List fragmentTitleList = new ArrayList<>();
public PagerAdapter(@NonNull FragmentManager fm, int behavior) {
super(fm, behavior);
}
@NonNull
@Override
public Fragment getItem(int position) {
return fragmentList.get(position);
}
@Override
public int getCount() {
return fragmentList.size();
}
public void addFragment(Fragment fragment, String title) {
fragmentList.add(fragment);
fragmentTitleList.add(title);
}
@Nullable
@Override
public CharSequence getPageTitle(int position) {
return fragmentTitleList.get(position);
}
}
这样,就实现了Android AppBarLayout与标签和ViewPager的结合。在布局中,AppBarLayout包含了TabLayout作为顶部的标签,ViewPager作为滑动的页面内容。通过设置适配器和关联ViewPager和TabLayout,可以实现标签和页面的切换功能。