我在tabLayout中有一个视图寻呼机,它从JSON中获取它的内容
每页有不同的内容
我想做的就是让每个页面内容一次
有没有办法做到这一点
提前谢谢
答案 0 :(得分:1)
是的,有可能。我的答案不是来自官方消息,而是我以前的经验。
将ViewPager创建为活动的成员:
private ViewPager pager;
然后在onCreate()
方法中,初始化ViewPager:
pager=(ViewPager)findViewById(R.id.pager);
初始化您的选项卡布局和一个选项卡选择的侦听器:
tabLayout.addOnTabSelectedListener(
new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
switch (tab.getPosition())
{
case 0:
pager.setCurrentItem(0,true);
break;
case 1:
pager.setCurrentItem(1,true);
break;
case 2:
pager.setCurrentItem(2,true);
break;
}
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
switch (tab.getPosition())
{
case 0:
pager.setCurrentItem(0,true);
break;
case 1:
pager.setCurrentItem(1,true);
break;
case 2:
pager.setCurrentItem(2,true);
break;
}
}
}
);
为您的ViewPager设置适配器:
pager.setAdapter(new MyPagerAdapter(getSupportFragmentManager()));
创建扩展MyPagerAdapter
的私有内部类FragmentPagerAdapter
:
private class MyPagerAdapter extends FragmentPagerAdapter
{
private Tab1 tab1;private Tab2 tab2;private Tab3 tab3;
//Tab1,Tab2,Tab3 representing your respective fragments
public MyPagerAdapter(FragmentManager fm) {
super(fm);
//initialize all your fragments at once inside the constructor
tab1=new Tab1();
tab2=new Tab2();
tab3=new Tab3();
}
@Override
public int getCount() {
return 3;
}
@Override
public android.support.v4.app.Fragment getItem(int position) {
//Return each fragment according to a position
switch (position)
{
case 0:
return tab1;
case 1:
return tab2;
case 2:
return tab3;
}
return null;
}
}
这就是我处理案件的方式。良好的编码。