如何在Android

时间:2017-04-28 16:52:15

标签: android android-fragments

我想要与ViewPager有类似的功能。 它预先加载碎片,所以当我滑动它时,它会平滑地显示碎片。

以下是我的应用的一些细节。 它在创建片段时从api中提取数据(我在OnCreateView方法中调用api),所以一旦api调用完成,它就会显示所有数据。在呼叫api期间,它显示转向轮。 数据包含图像和一些文本。 我用Glide来展示图像。所以显示用户需要更多时间。

我创建了滑动手势,因此用户可以使用滑动来探索片段。 用户应该总是等待一段时间才能看到数据,因为它在显示时会调用api。

反向滑动是完美的,因为它已经加载了。

我可以通过反向滑动预加载碎片吗?或者我需要使用ViewPager吗? 我认为即使我使用ViewPager,它也不是很完美......

我想在不等待的情况下显示数据。 谢谢你的帮助!

3 个答案:

答案 0 :(得分:0)

这将是一个简单的例子,说明如何实现你想要的东西,你需要填写页面的lisview或数据,你需要在一个Asyntask中完成它们。

public class ViewPagerAdapter extends FragmentPagerAdapter
{
    private final List<Fragment> fragmentViewsList = new ArrayList<>();
    private final List<String> fragmentsTitleList = new ArrayList<>();

    public ViewPagerAdapter(FragmentManager manager) {
        super(manager);
    }

    @Override
    public Fragment getItem(int position) {
        return fragmentViewsList.get(position);
    }

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

    public void addFragment(Fragment fragment, String title) {
        fragmentViewsList.add(fragment);
        fragmentsTitleList.add(title);
    }

    @Override
    public CharSequence getPageTitle(int position) {
        return fragmentsTitleList.get(position);
    }
}

答案 1 :(得分:0)

最后我决定使用ViewPager,它看起来效果很好。 我在调用web api时显示了加载覆盖。

如果有人知道如何预加载片段,请给我解决方案。 感谢。

答案 2 :(得分:-1)

我建议你在这种情况下使用widgest android来执行,这个串行操作使用FragmentPagerAdapter并执行单个服务来填充你的每个数据。

问候。