Android support design + fragment的使用

来源:互联网 发布:能用网络发短信吗 编辑:程序博客网 时间:2024/06/08 02:18
首先,关于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;
}

@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);
}
}


0 0
原创粉丝点击