fragment+viewpage实现页面切换
时间: 2023-09-28 07:05:50 浏览: 128
使用Fragment和ViewPager实现页面切换的步骤如下:
创建Fragment:创建需要显示的Fragment,并实现Fragment的布局和逻辑。
创建ViewPager:在主界面布局中添加ViewPager,并创建一个PagerAdapter(适配器)用于管理Fragment。
实现PagerAdapter:创建一个继承FragmentPagerAdapter或FragmentStatePagerAdapter的适配器,重写getItem()方法,返回对应位置的Fragment。
设置ViewPager:将创建好的适配器设置给ViewPager,并添加TabLayout(选项卡)用于切换页面。
具体实现步骤如下:
- 创建需要显示的Fragment:
public class Fragment1 extends Fragment {
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment1_layout, container, false);
// TODO: 添加需要显示的布局和逻辑
return view;
}
}
- 创建ViewPager:
<androidx.viewpager.widget.ViewPager
android:id="@+id/view_pager"
android:layout_width="match_parent"
android:layout_height="match_parent" />
- 实现PagerAdapter:
public class MyPagerAdapter extends FragmentPagerAdapter {
private List<Fragment> mFragments;
private List<String> mTitles;
public MyPagerAdapter(FragmentManager fm, List<Fragment> fragments, List<String> titles) {
super(fm);
mFragments = fragments;
mTitles = titles;
}
@Override
public Fragment getItem(int position) {
return mFragments.get(position);
}
@Override
public int getCount() {
return mFragments.size();
}
@Nullable
@Override
public CharSequence getPageTitle(int position) {
return mTitles.get(position);
}
}
- 设置ViewPager:
ViewPager viewPager = findViewById(R.id.view_pager);
List<Fragment> fragments = new ArrayList<>();
fragments.add(new Fragment1());
fragments.add(new Fragment2());
List<String> titles = new ArrayList<>();
titles.add("页面1");
titles.add("页面2");
MyPagerAdapter adapter = new MyPagerAdapter(getSupportFragmentManager(), fragments, titles);
viewPager.setAdapter(adapter);
TabLayout tabLayout = findViewById(R.id.tab_layout);
tabLayout.setupWithViewPager(viewPager);
这样就可以使用ViewPager和Fragment实现页面切换了。
相关推荐


















