GridLayoutManager ViewHolder引力

时间:2016-10-08 21:52:50

标签: android android-layout android-recyclerview gridlayoutmanager

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

1 个答案:

答案 0 :(得分:0)

您可以创建一个适合网格布局的新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);
   }
祝你好运