【问题标题】: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);
}
祝你好运