【问题标题】:GridLayoutManager ViewHolder gravityGridLayoutManager ViewHolder 重力
【发布时间】:2016-10-08 21:52:50
【问题描述】:

我有一个带有 GridLayoutManager 的 RecyclerView,其 spanCount 为 2。ViewHolder 用于带有 ImageView 和 TextView 的垂直 LinearLayout。 LinearLayout 有一个 setSize,比如 100dp x 100dp。当我在横向模式下查看我的活动时,我希望网格中的每个单元格都在其跨度内居中。但相反,每个都是左对齐的。再说一次,因为我的跨度为 2,每个视图占用的跨度为 1,所以我每行有两个视图。我希望每一行都在其跨度内居中,而不是左对齐。我该怎么做?

【问题讨论】:

  • 您找到解决方案了吗?

标签: android android-layout android-recyclerview gridlayoutmanager


【解决方案1】:

您可以创建一个适合网格布局的新 grid_item.xml 并相应地重新排列您的所有视图。 然后,您可以在适配器类中定义一个布尔变量,根据该变量您将决定在 onCreateViewHolder 中膨胀哪个列表/网格项。

     public DataHolder onCreateViewHolder(ViewGroup parent, int viewType) {
                if (isGrid){
                   View view = inflater.inflate(R.layout.grid_item , parent ,false);
                }else{
                   View view = inflater.inflate(R.layout.list_item , parent ,false);
                }
                return new DataHolder(view);
   }

祝你好运

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-02
    • 1970-01-01
    • 1970-01-01
    • 2016-03-19
    相关资源
    最近更新 更多