Fragment的子Fragment+TabLayout+ViewPager 的使用
文章目录
1 思路分析
本次项目中的设想的页面布局如下。可以看出,底部导航栏实现发现页面、发布页面、个人页面三个页面的切换,而对于发现页面则仍分为两栏,跑跑页面和点点页面。:
在具体实现中,一般会使用 Fragment+Viewpager 将发现、发布、个人三个页面作为主 Activtity 的三个 Fragment。如果要实现从子Fragment到同一父级Fragment的无缝滑动效果(即从发现-点点页面到发布页面效果),还要使用 TabLayout+ViewPager+Fragment。
本博客介绍在 Fragment 的子 Fragment 中使用 TabLayout+ViewPager 的方法。
2 具体实现
2.1 Activity 中 Fragment+ViewPager 的使用
首先来介绍一下在 Activity 中如何使用 Fragment+ViewPager。
布局文件如下。主要是为 Activity 添加一个 ViewPager
:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".ui.activity.HomeActivity">
<android.support.v4.view.ViewPager
android:id="@+id/home_viewPager"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"/>
</LinearLayout>
Activity 要实现 ViewPager.OnPageChangeListener
:
public class HomeActivity extends AppCompatActivity implements ViewPager.OnPageChangeListener{
}
初始化 Viewpager:
-
初始化 Fragment 页面
-
为 Viewpager 添加
addOnPageChangeListener
监听器 -
为 Viewpager 设置 Adapter,其中要实现
getItem()
方法,用以获取相应的 Fragment
ViewPager viewPager;
private HomeFragment homeFragment = new HomeFragment();
private SpaceFragment spaceFragment = new SpaceFragment()