У меня есть RecyclerView с GridLayoutManager, у которого spanCount равен 2. ViewHolder предназначен для вертикального LinearLayout с ImageView и TextView. LinearLayout имеет setSize, скажем, 100dp на 100dp. Когда я просматриваю свою активность в ландшафтном режиме, я хочу, чтобы каждая ячейка в сетке располагалась по центру в пределах своего диапазона. Но вместо этого каждый выравнивается по левому краю. Итак, еще раз, поскольку у меня диапазон 2, а каждое представление занимает диапазон 1, у меня есть два представления на строку. Я хочу, чтобы каждая строка была центрирована в пределах своего диапазона, а не выравнивалась по левому краю. Как я могу это сделать?
Гравитация GridLayoutManager ViewHolder
comment
Вы уже нашли решение?
- person mDroidd   schedule 06.06.2017
Ответы (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);
}
удачи
person
nir
schedule
08.10.2016