【问题标题】:ListFragment inside viewPager does not display data in some pages and works well in some pagesviewPager里面的ListFragment在某些页面不显示数据,在某些页面效果很好
【发布时间】:2017-10-26 08:43:34
【问题描述】:

我有一个 ListFragment,它从 Internet 获取 json 数据并显示在 listView 中。我在 viewPager 中重用这个片段。它加载数据并在前两页中显示,但在第三页中继续加载。大多数页面工作但中间的某些页面不起作用。我不明白的是我在所有页面中使用相同的片段,但在某些页面中不起作用。我通过创建一个 newInstance 并传递 url 以从中获取数据来重用相同的片段。如果我提供更多的代码让观众不知所措,所以我想这已经足够了。在 ListFragments 中获取和显示列表时我应该遵循什么规则。我做错了什么吗?

我的适配器:

public class FragmentPageAdapter extends FragmentPagerAdapter {

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

    @Override
    public Fragment getItem(int position) {
        switch (position)
        {
            case 0:
                Log.d("Adapter","Case 0 called");
                return new LisViewFragment2();

            case 1:
                return ListViewFragment.newInstance("https://newsapi.org/v1/articles?source=al-jazeera-english&sortBy=top&apiKey=my_key");

            case 2:
                return ListViewFragment.newInstance("https://newsapi.org/v1/articles?source=associated-press&sortBy=top&apiKey=my_key");

            case 3:
                return ListViewFragment.newInstance("https://newsapi.org/v1/articles?source=bbc-news&sortBy=top&apiKey=my_key");

            case 4:
                return ListViewFragment.newInstance("https://newsapi.org/v1/articles?source=cnn&sortBy=top&apiKey=my_key");

            case 5:
                return ListViewFragment.newInstance("https://newsapi.org/v1/articles?source=google-news&sortBy=top&apiKey=my_key");

            case 6:
                return ListViewFragment.newInstance("https://newsapi.org/v1/articles?source=independent&sortBy=top&apiKey=my_key");

            case 7:
                return ListViewFragment.newInstance("https://newsapi.org/v1/articles?source=metro&sortBy=top&apiKey=my_key");

            case 8:
                return ListViewFragment.newInstance("https://newsapi.org/v1/articles?source=mirror&sortBy=top&apiKey=my_key");

            case 9:
                return ListViewFragment.newInstance("https://newsapi.org/v1/articles?source=newsweek&sortBy=top&apiKey=my_key");

            case 10:
                return ListViewFragment.newInstance("https://newsapi.org/v1/articles?source=new-york-magazine&sortBy=top&apiKey=my_key");

            case 11:
                return ListViewFragment.newInstance("https://newsapi.org/v1/articles?source=reddit-r-all&sortBy=top&apiKey=my_key");

            case 12:
                return ListViewFragment.newInstance("https://newsapi.org/v1/articles?source=reuters&sortBy=top&apiKey=my_key");

            case 13:
                return ListViewFragment.newInstance("https://newsapi.org/v1/articles?source=the-guardian-uk&sortBy=top&apiKey=my_key");

            case 14:
                return ListViewFragment.newInstance("https://newsapi.org/v1/articles?source=the-hindu&sortBy=top&apiKey=my_key");

            case 15:
                return ListViewFragment.newInstance("https://newsapi.org/v1/articles?source=the-times-of-india&sortBy=top&apiKey=my_key");

            case 16:
                return ListViewFragment.newInstance("https://newsapi.org/v1/articles?source=the-new-york-times&sortBy=top&apiKey=my_key");

            case 17:
                return ListViewFragment.newInstance("https://newsapi.org/v1/articles?source=the-telegraph&sortBy=top&apiKey=my_key");

            default:
                return ListViewFragment.newInstance("https://newsapi.org/v1/articles?source=usa-today&sortBy=top&apiKey=my_key");


        }

    }

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


}

【问题讨论】:

  • 使用FragmentStatePagerAdapter而不是FragmentPagerAdapter来尝试你的代码

标签: java android android-viewpager android-listfragment


【解决方案1】:

覆盖 getItemPosition 并返回 POSITION_NONE

@Override
public int getItemPosition(Object object) {
    return POSITION_NONE;
}

【讨论】:

    猜你喜欢
    • 2012-02-10
    • 2013-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多