动态添加片段

Add fragments dynamically

我需要在图片下方显示文字,但需要水平滑动功能。那就是每次有人水平滑动图像和文本时都会更新。但问题是我不知道服务器返回的带有文本的图像的数量。我该如何处理?

您需要更新 onSwipeLeft 或 onSwipeRight 内的 textView(在单独的片段中或在同一个 activity 中)。

要获得这些回调,您需要创建扩展 TouchListener 的自定义侦听器。

这样做的一个很好的例子是 here

使用ViewPageAdapter来实现这个功能。第一步是从服务器获取图像和相应的文本。我更愿意将服务器自定义为 return 它 json 数组。

使用从服务器获取的值,编写一个类似于下面的适配器。这里 myValues 将是存储服务器中所有值的数组。

使用静态方法创建 Fragment(低于 MyFragment),该方法将 return 具有所需值集的片段的新实例。

现在,当您滑动时,将调用方法 getItem(pos) 并向用户显示一个新的片段实例。

 private class MyPagerAdapter extends FragmentPagerAdapter {
    ArrayList<Values> myValues = new ArrayList<Values>();

    public MyPagerAdapter(FragmentManager fm,ArrayList<Values> val) {
        super(fm);
        this.myValues = val;
    }

    @Override
    public Fragment getItem(int pos) {
        return MyFragment.newInstance("text","image");
    }

    @Override
    public int getCount() {
        return myValues.length();
    }       
 }
}

希望这对您有所帮助。 :)

使用水平滚动的 RecyclerView。

recyclerview = (RecyclerView) view.findViewById(R.id.recyclerview);
layoutManager = new LinearLayoutManager(context, LinearLayoutManager.HORIZONTAL, false);
recyclerview.setLayoutManager(layoutManager);
recyclerview.setItemAnimator(new DefaultItemAnimator());
recyclerview.setHasFixedSize(true);
recyclerview.setAdapter(adapter);