Java Android - 动态加载 fragment (ViewPager)

标签 java android android-fragments

在设置中存在复选框,如果选中,则不得加载特定 fragment 。我只有 4 个 fragment ,我使用 FragmentStatePagerAdapter 来显示它们。

public class TabPagerAdapter extends FragmentStatePagerAdapter {

    public TabPagerAdapter(FragmentManager fm) {
    super(fm);
  }

  @Override
  public Fragment getItem(int i) {
    switch (i) {
        case 0:
            return new Fragment_One();
        case 1:
            return new Fragment_Two();
        case 2:
            return new Fragment_Three();
        case 3:
            return new Fragment_Four();
        }
    return null;
  }

  @Override
  public int getCount() {
  return 4;
  }

}

作为显示 fragment ,哪些不是只能在设置中检查?我得到值(true 或 false(选中或取消选中) fragment ,但如何不显示此 fragment ,我不知道。

最佳答案

您必须调整 getItem() 方法以及 getCount() 方法。

假设您有一个方法 shouldShowFragment(intfragmentNumber),它告诉我对于从 0 到 3 的给定 fragment 编号,是否应该显示它(取决于设置)。

现在,像这样实现 getCount() 以返回应显示的 fragment 数:

public int getCount() {
    int cnt = 0;
    for (int i = 0; i < 4; i++) {
        if (shouldShowFragment(i)) cnt++;
    }
    return cnt;
}

并像这样实现 getItem() 以考虑不显示的 fragment :

public Fragment getItem(int position) {
    int cnt = -1;     
    for (int i = 0; i < 4; i++) {
        if (shouldShowFragment(i)) cnt++;
        if (cnt == position) {
            switch(i) {
                case 0 : return new Fragment_One();
                case 1 : return new Fragment_Two();
                case 2 : return new Fragment_Three();
                case 3 : return new Fragment_Four();
            }
        }
    }
    return null;
}

关于Java Android - 动态加载 fragment (ViewPager),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23709385/

相关文章:

java - 不小心将.java文件拖出eclipse,无法拖回

java - 如何计算单词的拼字游戏分数

android - GPIO 值总是变化

java - 如何将变量从 Activity 传递到 fragment 无法解决上一个问题的所有问题

java - MP3 媒体播放器上的加载对话框准备()

java - 使用 GSON 将 Json 解析为 JAVA 对象,其中 Json 元素可能会有所不同

java - Android 应用程序可以使用 java 8 编译的 jar 吗?

javascript - 如何获取React Native GoogleSignIn的accessToken?

android - 将扩展 fragment 添加到 Activity

android - 保存位图不适用于 dialogfragment