Как установить гравитацию макета для корневого вида активности - PullRequest
0 голосов
/ 12 ноября 2018

Я получаю корневое представление (в моем случае это RelativeLayout), используя следующий код:

final ViewGroup viewGroup = (ViewGroup) ((ViewGroup) this
        .findViewById(android.R.id.content)).getChildAt(0);

Источник: Получить корневой вид текущей активности

Теперь я хочу установить размер и гравитацию макета корневого представления. Но я не знаю тип макета его родителя

Приведенный ниже код работает, когда представление, для которого я хочу установить параметры макета, находится внутри LinearLayout.

LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.FILL_PARENT);
params.weight = 1.0f;
params.gravity = Gravity.TOP;

button.setLayoutParams(params);

Источник: Как программно установить layout_gravity?

1 Ответ

0 голосов
/ 12 ноября 2018

Я считаю, что вам нужно DecorView.LayoutParams.

Корневое представление добавляется в DecorView, который прикрепляется к окну действия.

PhoneWindow.java


Поскольку рассматриваемый DecorView недоступен для приложений в целом, вы можете использовать FrameLayout.LayoutParams.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...