首先,关于xml文件怎么写的问题
只需要一个<android.support.design.widget.TabLayout>
下面再放一个viewpager就可以了,要注意这个viewpager是android.support.v4.view.ViewPager
要注意这个是上下并列的两个元素,要注意最外面的LinearLayout是vertical的
然后关于在activity中的操作:
我们在initView函数中抓取这两个元素,
TabLayout tabLayout = (TabLayout)
this.findViewById(R.id.
tab_layout);ViewPager viewPager = (ViewPager)
this.findViewById(R.id.
view_pager); 然后要加一些数据来充当ViewPager里面的内容和title
这里我们先初始化TabLayout的title数据集
List<String> titles =
new ArrayList<>();titles.add(
"评价我的");titles.add(
"我评价的");
在初始化TabLayout的title
tabLayout.addTab(tabLayout.newTab().setText(titles.get(
0)));tabLayout.addTab(tabLayout.newTab().setText(titles.get(
1)));
再初始化ViewPager的数据集
List<Fragment> fragments =
new ArrayList<>();fragments.add(
new SelfCommentFromOthersFragment());fragments.add(
new SelfCommentToOthersFragment());
最后创建ViewPager的Adapter
FragmentAdapter adapter =
new FragmentAdapter(getSupportFragmentManager(), fragments, titles);viewPager.setAdapter(adapter);把之前设置的fragment和titles一起Adapter数据上去。
最后不要忘了关联Layout和TabLayout,同时要覆写PagerAdapter的getPageTitle方法,否则Tab没有title
tabLayout.setupWithViewPager(viewPager);tabLayout.setTabsFromPagerAdapter(adapter);
——————————————————华丽的分割线————————————————————————————————————
有关FragmentAdapter的内容
其实和普通的Adapter一样,几乎没有差别,不过是添上数据而已。
代码如下:
public class FragmentAdapter
extends FragmentStatePagerAdapter {
private List<Fragment>
mFragments;
private List<String>
mTitles;
public FragmentAdapter(FragmentManager fm, List<Fragment> fragments, List<String> titles) {
super(fm);
mFragments = fragments;
mTitles = titles; }
@Overridepublic Fragment getItem(
int position) {
return mFragments.get(position); }
@Overridepublic int getCount() {
return mFragments.size(); }
@Overridepublic CharSequence getPageTitle(
int position) {
return mTitles.get(position); }}
转载请注明原文地址: https://ju.6miu.com/read-1124345.html