如何用ImageViews实现水平滚动



我想显示从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;
        }
    }

}

最新更新