如何在运行时动态设置带有片段的操作栏中可滑动选项卡的数量

Pra*_*ela 2 android android-fragments android-viewpager android-actionbar android-tabs

我指的是使用片段的可滑动标签的链接。它对我有用,但是如果我需要动态添加选项卡数量而不预先分配选项卡数量怎么办?例如,某些逻辑给我输出了一个数组2个字符串和一个数组4个字符串。并且根据逻辑,我需要在运行时设置操作栏中的选项卡数量。我该如何实现?谁能告诉我如何实现我的需求?

Y.S*_*Y.S 5

步骤1:

定义TabsPagerAdapter如下:

public class TabsPagerAdapter extends FragmentPagerAdapter {

    private ArrayList<Fragment> list;

    public TabsPagerAdapter(FragmentManager fm, ArrayList<Fragment> list) {
        super(fm);
        this.list = list;
    }

    @Override
    public Fragment getItem(int index) {
        return list.get(index);
    }

    @Override
    public int getCount() {
        return list.size();
    }

}
Run Code Online (Sandbox Code Playgroud)

第2步:

确定运行时的选项卡数量时,首先请确保创建List所需数量Fragment的。您可以使用做这个

ArrayList<Fragment> list = new ArrayList<Fragment>();
for(int i = 0; i < tabcount; i++){
    list.add(MyFragment.newInstance());
}
Run Code Online (Sandbox Code Playgroud)

或者 这个

ArrayList<Fragment> list = new ArrayList<Fragment>();
list.add(new GamesFragment());
list.add(new TopRatedFragment());
list.add(new MoviesFragment());
Run Code Online (Sandbox Code Playgroud)

步骤3:

当您创建AdapterViewPager,通过ArrayListFragmentS IN的构造函数TabsPagerAdapter

TabsPagerAdapter adapter = new TabsPagerAdapter(fm, list);
Run Code Online (Sandbox Code Playgroud)

尝试这个。这将起作用。