TabLayout+ViewPager的布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<android.support.design.widget.TabLayout
android:id="@+id/tabLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"></android.support.design.widget.TabLayout>
<android.support.v4.view.ViewPager
android:id="@+id/ViewPager2"
android:layout_width="match_parent"
android:layout_height="match_parent"></android.support.v4.view.ViewPager>
</LinearLayout>
TabLayout的具体实现步骤
import android.support.annotation.Nullable;
import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.View;
import java.util.ArrayList;
import java.util.List;
import jiaoyibo.bawei.com.jiaoyibo20190109.R;
import jiaoyibo.bawei.com.jiaoyibo20190109.base.BaseFragment;
import jiaoyibo.bawei.com.jiaoyibo20190109.tablayout.TablayoutOne;
import jiaoyibo.bawei.com.jiaoyibo20190109.tablayout.TablayoutThree;
import jiaoyibo.bawei.com.jiaoyibo20190109.tablayout.TablayoutTwo;
/**
* <p>文件描述:<p>
* <p>作者:JYB<p>
* <p>创建时间:2019/1/9<p>
* <p>更改时间:2019/1/9<p>
* <p>版本号:1<p>
*/
public class FragmentOne extends BaseFragment {
private TabLayout tabLayout;
private ViewPager viewPager2;
//创建获取页面的集合
private List<Fragment> list = new ArrayList<>();
//创建TabLayout文字的集合
private ArrayList<String> mTitle = new ArrayList<>();
@Override
protected void initData() {
//添加布局
list.add(new TablayoutOne());
list.add(new TablayoutTwo());
list.add(new TablayoutThree());
//添加TabLayout文字
mTitle.add("正在上映");
mTitle.add("即将上映");
mTitle.add("预告上映");
viewPager2.setAdapter(new FragmentPagerAdapter(getActivity().getSupportFragmentManager()) {
@Override
public Fragment getItem(int i) {
return list.get(i);
}
@Override
public int getCount() {
return list.size();
}
/**
* viewPager和PagerTab(就是页签)联用,
* viewPager的适配器中getPageTitle方法会返回position位置的PagerTab的标题
* @param position
* @return
*/
@Nullable
@Override
public CharSequence getPageTitle(int position) {
return mTitle.get(position);
}
});
}
@Override
protected void initView(View view) {
tabLayout = view.findViewById(R.id.tabLayout);
viewPager2 = view.findViewById(R.id.ViewPager2);
//tablayout关联viewpager
tabLayout.setupWithViewPager(viewPager2);
}
@Override
protected int getLayoutId() {
return R.layout.fragment_01;
}
}