首先,关于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里面的内容和title
ViewPager viewPager = (ViewPager) this.findViewById(R.id.view_pager);
这里我们先初始化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);把之前设置的fragment和titles一起Adapter数据上去。
viewPager.setAdapter(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;
}
@Override
public Fragment getItem(int position) {
return mFragments.get(position);
}
@Override
public int getCount() {
return mFragments.size();
}
@Override
public CharSequence getPageTitle(int position) {
return mTitles.get(position);
}
}