【问题标题】:How to use HorizontalGridView如何使用水平网格视图
【发布时间】:2018-07-16 06:24:27
【问题描述】:

我正在尝试使用HorizontalGridView。但是,让它水平滚动并不容易。我不知道如何准确地使用HorizontalGridView。所以,如下使用RecyclerView

private class GridViewAdaptor extends RecyclerView.Adapter<GridViewAdaptor.ViewHolder> {
        private Context mContext;
        private ArrayList<String> mPathList;

        GridViewAdaptor(Context context, ArrayList<String> pathList) {
            mContext = context;
            mPathList = pathList;
        }

        @Override
        public int getItemCount() {
            return mPathList.size();
        }

        @Override
        public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
            View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_top_menu_sub, parent, false);
            return new ViewHolder(view);
        }

        @Override
        public void onBindViewHolder(ViewHolder holder, int position) {
            GlideApp.with(mContext).load(R.raw.image_1).diskCacheStrategy(DiskCacheStrategy.RESOURCE).apply(new RequestOptions().fitCenter()).into(holder.mImage);
        }

        class ViewHolder extends RecyclerView.ViewHolder {
            ImageView mImage;

            ViewHolder(View view) {
                super(view);
                mImage = (ImageView) view.findViewById(R.id.image_top_menu_sub);
            }
        }
}

而且...此代码位于onCreate()。为了简化测试,我在pathList 中添加了假人,并且只使用了一张图片来加载。

    RelativeLayout.LayoutParams params = new 
    RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
    mTopMenuSubGrid = new HorizontalGridView(this);
    mTopMenuSubGrid.setLayoutParams(params);
    mTopMenuSubGrid.setNumRows(1);
    mTopMenuSubGrid.setHorizontalSpacing(space);
    mTopMenuSubGrid.setVerticalSpacing(space);

    ArrayList<String> pathList = new ArrayList<>();
    pathList.add("0");
    pathList.add("1");
    pathList.add("2");
    pathList.add("3");
    pathList.add("4");
    pathList.add("5");
    pathList.add("6");
    pathList.add("7");

    GridLayoutManager manager = new GridLayoutManager(this, 4);
    mTopMenuSubGrid.setLayoutManager(manager);
    mTopMenuSubGrid.setAdapter(new GridViewAdaptor(this, pathList));
    mTopMenuSubLayout.addView(mTopMenuSubGrid);

此代码在HorizontalGridView 上显示了 8 张相同的图像。但是,该网格视图垂直滚动。我想水平滚动。请告诉我出了什么问题。

【问题讨论】:

    标签: android gridview horizontal-scrolling


    【解决方案1】:

    使用这个构造函数

    new GridLayoutManager(this, 1, GridLayoutManager.HORIZONTAL, false)
    

    您可以根据需要设置 spanCount 的数量。

    【讨论】:

    • 我也在尝试使用它,但应用程序不断崩溃,找不到任何文档。你是如何在 XML 中声明 Horizo​​ntalGridView 的?您还需要一个 gradle 实现条目吗?
    • 我发现它很酷(androidx):实现'androidx.leanback:leanback:1.0.0'
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多