viewpagerindicator:listview在第二次显示时片段为空

时间:2015-01-15 15:54:26

标签: java android listview android-fragments navigation-drawer

我有一个NavigationDrawer来启动片段。我有一个包含来自TabPageIndicator的4个标签的片段,其中包含一个包含列表视图的片段。

如果再次点击菜单中的条目启动片段,元素就会消失。有时如果我在它们之间切换它们也会消失。我有时也需要刷卡才能让他们回来。

ArchivFragment

public View onCreateView(LayoutInflater layoutInflater, ViewGroup viewGroup, Bundle bundle) {
    View view = layoutInflater.inflate(R.layout.fragment_archiv, viewGroup, false);

    List<String> titles=new ArrayList<String>();
    titles.add(getString(R.string.category_animal));
    titles.add(getString(R.string.category_earth));
    titles.add(getString(R.string.category_water));
    titles.add(getString(R.string.category_air));

    FragmentPagerAdapter adapter = new ArchivTabAdapter(getFragmentManager(), titles);

    ViewPager pager = (ViewPager)view.findViewById(R.id.pager);
    pager.setAdapter(adapter);

    TabPageIndicator indicator = (TabPageIndicator)view.findViewById(R.id.indicator);
    indicator.setViewPager(pager);

    return view;
}

ArchivTabAdapter 使用示例

public class ArchivTabAdapter extends FragmentPagerAdapter {

    private List<String> tabs;

    public ArchivTabAdapter(FragmentManager fm, List<String> tabs) {
        super(fm);
        this.tabs = tabs;
    }

    @Override
    public Fragment getItem(int position) {
        return ArchivListFragment.newInstance(position);
    }

    @Override
    public CharSequence getPageTitle(int position) {
        return tabs.get(position % tabs.size()).toUpperCase(Locale.getDefault());
    }

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

ArchivListFragment

public View onCreateView(LayoutInflater inflater, ViewGroup viewGroup, Bundle savedInstanceState) {
    View view = (View) inflater.inflate(R.layout.archiv_list, viewGroup, false);

    ListView lv = (ListView) view.findViewById(R.id.tab);

    ArrayList<Item> al = new ArrayList<Item>();

    al = getArrayListToApply(filter);

    lv.setAdapter(new ArchivArrayAdapter(getActivity(), al));

    return view;
}

ArchivArrayAdapter

类似于ArchivTabAdapter

更新1

看来,我要滚动所有项目(特别是最后一项)以让其他人回来

1 个答案:

答案 0 :(得分:1)

<强> ArchivTabAdapter
similar problem

改变 android.support.v4.app.FragmentPagerAdapterandroid.support.v4.app.FragmentStatePagerAdapter