Центр зрения в Android после изменения его свойств ширины
Я изменяю ширину вида сетки в зависимости от ширины столбца и количества столбцов (что работает):
gridView.setLayoutParams(new LinearLayout.LayoutParams(gridManipulation.getColumnWidth() * (int)Math.sqrt(str.length) + 10, LayoutParams.FILL_PARENT));
gridView.setGravity(Gravity.CENTER);
Я попытался перецентрировать его в родительском представлении, но он не работает, кто-нибудь знает почему, он по-прежнему центрирован, как если бы он имел параметры ширины до моего динамического изменения.
2 ответа
Решение
Установить Gravity
как LayoutParams
свойство затем установить, что LayoutParams
на ваш GridView
следующее...
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(gridManipulation.getColumnWidth() * (int)Math.sqrt(str.length) + 10, LayoutParams.FILL_PARENT);
params.gravity = Gravity.CENTER;
gridView.setLayoutParams(params);
Вы не можете центрировать его, если он больше родительского, который никогда не больше экрана, если вы не установите его вручную, что приведет к тому, что система отобразит данные за пределами экрана и замедлит ваш путь.....
он расширяется по вертикали, по горизонтали или в обоих направлениях? я бы рекомендовал поместить его в прокрутку.