【问题标题】:How to implement horizontal scroller with ImageViews如何使用 ImageViews 实现水平滚动条
【发布时间】:2015-12-21 11:43:58
【问题描述】:

我想显示从网络下载的一组图像并将其显示为底部水平缩略图视图的一部分,在水平滚动视图模式下,每当我拍照时,它都需要添加到底部的图像列表中。

要使用什么类型的原生组件,我尝试了回收器视图和水平网格视图(LeanBack V17 API,回收器视图的扩展),在它们中,我遇到了水平滚动问题,我无法修复它出来,(scroll issue related to recycle view)

是否有其他替代原生 API 可用于实现图像的水平列表视图。

【问题讨论】:

标签: android android-scrollview android-recyclerview


【解决方案1】:

是的,您可以使用带有属性的 LinearLayout android:orientation="horizontal"

您还需要将此 LinearLayout 放在 ScrollLayout 中以使其滚动。

图片下载完成后,可以在LinearLayout里面的ImageView中添加

【讨论】:

    【解决方案2】:
     <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;
            }
        }
    
    
    }
    

    【讨论】:

      猜你喜欢
      • 2022-08-24
      • 2019-08-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-31
      • 2016-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多