TabLayout和ViewPager的简单使用

时间:2023-01-10 05:25:17
package com.fragment;


import android.os.Bundle;
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.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import com.example.lenovo.kuankanmanhua.R;

import java.util.ArrayList;
import java.util.List;

public class Remen extends Fragment {

private TabLayout tabLayout; //定义TabLayout
private ViewPager view_vp; //定义viewPager

private List<Fragment> list_fragment = new ArrayList<>(); //定义要装fragment的列表
private List<String> list_title = new ArrayList<>(); //tab名称列表
private Zhouy1 zhouy1;
private Zhouy2 zhouy2;
private Zhouy3 zhouy3;
private Zhouy4 zhouy4;
private Zhouy5 zhouy5;
private Zhouy6 zhouy6;
private Zhouy7 zhouy7;


@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.remen, null);
initview(view);
return view;
}

private void initview(View view) {
tabLayout = (TabLayout) view.findViewById(R.id.tab_FindFragment_title);
view_vp = (ViewPager) view.findViewById(R.id.vp_FindFragment_pager);

//初始化各fragment
zhouy1 = new Zhouy1();
zhouy2 = new Zhouy2();
zhouy3 = new Zhouy3();
zhouy4 = new Zhouy4();
zhouy5 = new Zhouy5();
zhouy6 = new Zhouy6();
zhouy7 = new Zhouy7();

//将fragment装进列表中
list_fragment.add(zhouy1);
list_fragment.add(zhouy2);
list_fragment.add(zhouy3);
list_fragment.add(zhouy4);
list_fragment.add(zhouy5);
list_fragment.add(zhouy6);
list_fragment.add(zhouy7);

//将名称加载tab名字列表
list_title.add("周一");
list_title.add("周二");
list_title.add("周三");
list_title.add("周四");
list_title.add("周五");
list_title.add("周六");
list_title.add("周日");

//设置TabLayout的模式
//tab_title.setTabMode(TabLayout.MODE_FIXED);
tabLayout.setTabMode(TabLayout.MODE_SCROLLABLE);
//为TabLayout添加tab名称
tabLayout.addTab(tabLayout.newTab().setText(list_title.get(0)));
tabLayout.addTab(tabLayout.newTab().setText(list_title.get(1)));
tabLayout.addTab(tabLayout.newTab().setText(list_title.get(2)));
tabLayout.addTab(tabLayout.newTab().setText(list_title.get(3)));
tabLayout.addTab(tabLayout.newTab().setText(list_title.get(4)));
tabLayout.addTab(tabLayout.newTab().setText(list_title.get(5)));
tabLayout.addTab(tabLayout.newTab().setText(list_title.get(6)));

view_vp.setAdapter(new FragmentPagerAdapter(getChildFragmentManager()) {
@Override
public Fragment getItem(int position) {

return list_fragment.get(position);
}

@Override
public int getCount() {

return list_title.size();
}
//此方法用来显示tab上的名字
@Override
public CharSequence getPageTitle(int position) {
return list_title.get(position%list_title.size());
}
});
//TabLayout加载viewpager
tabLayout.setupWithViewPager(view_vp);
}

}

//布局
<?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"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical">
<android.support.design.widget.TabLayout
android:id="@+id/tab_FindFragment_title"
android:layout_width="match_parent"
android:layout_height="40dp"
app:tabIndicatorColor="#f7c203"
app:tabSelectedTextColor="#af976262"
app:tabTextColor="#dc0b0707"
/>


<android.support.v4.view.ViewPager
android:id="@+id/vp_FindFragment_pager"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1"
/>
</LinearLayout>