我想显示从web下载的一组图像,并将其显示为底部水平缩略图视图的一部分,在水平滚动视图模式下,每当我拍照时,都需要将其添加到底部的图像列表中。
要使用哪种类型的本地组件,我尝试了回收器视图和horizontalGridView(LeanBack V17 API,回收器视图的扩展),在这两种视图中,我都遇到了水平滚动问题,我无法解决,(与回收视图相关的滚动问题)
是否有其他可供选择的本地API可用于实现图像的水平列表视图。
是的,您可以使用带有属性的LinearLayoutandroid:orientation="horizontal"
你还需要把这个LinearLayout放在ScrollLayout中滚动
下载图像后,您可以将其添加到LinearLayout 内的ImageView中
<android.support.v7.widget.RecyclerView
android:id="@+id/recyclerView"
android:layout_width="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
android:layout_height="match_parent"
>
</android.support.v7.widget.RecyclerView>
Activity:
recyclerView = (RecyclerView) findViewById(R.id.recyclerView);
LinearLayoutManager manager = new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false);
recyclerView.setLayoutManager(manager);
adapter = new EventListAdapter(this, imageList);
recyclerView.setAdapter(adapter);
Adapter:
public class ImageListAdapter extends RecyclerView.Adapter<ImageListAdapter.ViewHolder> {
private final LayoutInflater inflator;
private Context context;
private List<Integer> imageList = new ArrayList<>();
public ImageListAdapter(Context context, List<Integer> imageList) {
this.context = context;
this.imageList = imageList;
inflator = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = inflator.inflate(R.layout.eventlistadapterdata, parent, false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
Integer image = imageList.get(position);
holder.view.setImageResource(image);
}
@Override
public int getItemCount() {
return imageList.size();
}
static class ViewHolder extends RecyclerView.ViewHolder {
ImageView view;
ViewHolder(ImageView view) {
super(view);
this.view = view;
}
}
}