动态添加片段
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);
我需要在图片下方显示文字,但需要水平滑动功能。那就是每次有人水平滑动图像和文本时都会更新。但问题是我不知道服务器返回的带有文本的图像的数量。我该如何处理?
您需要更新 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);