1.design模式下,将TabLayout 拖入界面中
注意:TabLayout 在container中
2.design模式下,将ViewPager拖入界面中
<1>若出现错误(在xml文件中设置android:orientation="vertical")
<2>向viewpager中添加页面组件
(1)创建多个页面
app--->res--->layout ,选中layout,右击new--->xml--->layout xml file
(2)将多个页面布局添加到Viewpager中(采用Fragment的方式)
新建3个MyFragment(继承Fragment)
public class MyFragment1 extendsFragment {
@Nullable
@OverridepublicView onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view=inflater.inflate(R.layout.layout_page1,container,false);returnview;
}
3.源码
public class MainActivity extendsAppCompatActivity {
TabLayout tabLayout;
ViewPager viewPager;
List fragments; //定义一个列表集合(应用泛型)
String[] table={"新闻","财经","娱乐"}; //定义一个数组存放标题内容
@Overrideprotected voidonCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tabLayout=findViewById(R.id.tablayout);
viewPager=findViewById(R.id.viewpager);
fragments=new ArrayList<>(); //实例化集合
fragments.add(newMyFragment1());
fragments.add(newMyFragment2());
fragments.add(newMyFragment3());
Adapter adapter=new Adapter(getSupportFragmentManager(),fragments); //参数1为fragment管理器
viewPager.setAdapter(adapter); //给viewPager设置适配器
tabLayout.setupWithViewPager(viewPager); //将tabLayout与viewPager建立匹配
}//创建一个内部类作为适配器
public class Adapter extendsFragmentPagerAdapter{private Listlist;public Adapter(FragmentManager fm,Listlist) {super(fm);this.list=list;
}
@Overridepublic Fragment getItem(intposition) {returnlist.get(position);
}
@Overridepublic intgetCount() {returnlist.size();
}//重写getPageTitle()方法,获取页标题
@Nullable
@Overridepublic CharSequence getPageTitle(intposition) {returntable[position];
}
}
}
原文:https://www.cnblogs.com/luckyplj/p/10473240.html