我无法为每个选项卡创建动态布局,我可以通过此构造函数(public MyPagerAdapter(FragmentManager fm,int noOfTabs))动态创建选项卡,但无法为每个选项卡膨胀视图,为每个片段创建的选项卡应该是动态的。
public class MyPagerAdapter extends FragmentPagerAdapter
{
private final String[] TITLES = { "Categories", "Home", "Top Paid", "Top Free", "Top Grossing", "Top New Paid",
"Top New Free", "Trending" };
int noOfTabs;
**public MyPagerAdapter(FragmentManager fm , int noOfTabs)
{
super(fm);
this.noOfTabs = noOfTabs;
}**
/*public MyPagerAdapter(FragmentManager fm)
{
super(fm);
}*/
@Override
public CharSequence getPageTitle(int position) {
return TITLES[position];
}
@Override
public int getCount() {
return noOfTabs; //TITLES.length;
}
@Override
public Fragment getItem(int position) {
return SuperAwesomeCardFragment.newInstance(position);
}
}
我在这里面临的问题应该是动态的,而不是静态的三个片段(FragmentA,FragmentB,FragmentC),它可以是任何数量的片段取决于int noOfTabs:
@Override
public Fragment getItem(int position) {
Fragment fragment =null;
switch (position) {
case 0:
fragment = new FragmentA();
break;
case 1:
fragment = new FragmentB();
break;
case 2:
fragment = new FragmentC();
break; }
return fragment;
}
提前感谢,如果任何人可以帮助我在这方面,因为我正在使用这个与库PagerSlidingTabStrip的帮助。
1条答案
按热度按时间sy5wg1nm1#
@nbokmans的解决方案可能是好的,但我已经使用了一个容器来完成。
创建一个简单的主机片段,其中包含FrameLayout,并通过替换fragment来创建,这对我来说是一个很好的动态解决方案。
使用Otto EventBus使它变得很棒,因为它可以从任何地方进行更改,只需简单的发布