Каков родитель элемента макета? - PullRequest
0 голосов
/ 27 июня 2019

Я новичок в разработке для Android, так что это может быть очевидным вопросом, но я просмотрел несколько источников и не могу найти ответ. Если вы помещаете элементы виджета в элемент макета, то родительский элемент этих элементов виджета является элементом макета, верно? Так что же является родительским элементом макета? Поскольку в сгенерированном по умолчанию файле activity_main.xml (для макета) есть атрибут android: layout_width = "match_parent" для самого верхнего элемента макета ограничения. Итак, что является родителем этого элемента макета ограничения?

Ответы [ 3 ]

0 голосов
/ 27 июня 2019

match_parent - это фиксированное значение для растяжений видов в соответствии с их родителями.Например, допустим, у вас есть Textview внутри RelativeLayout.Если для Textview установлено соответствие родительскому элементу, он будет растягиваться в соответствии с его родительским / корневым видом, который является относительным макетом.

Так что в основном он будет иметь такую ​​же высоту и ширину, что и родительский макет.

0 голосов
/ 27 июня 2019

Ваш ConstraintLayout является корневым макетом вашего Activity, но это только часть макета, созданного системой.

Например, вы можете получить ссылку на родительский макет вашего * 1005.*:

ViewGroup layoutRoot = findViewById(android.R.id.content);

Когда вы установите match_parent, ваш View (макет - это ViewGroup, который является просто View) будет пытаться заполнить пространство, доступное в его родительском макете.Так, определенным образом, это просто говорит о том, насколько ваш вид может расти по оси X / Y.В вашем случае ваш ConstraintLayout будет расти, чтобы соответствовать этому android.R.id.content

. Конечно, есть один вид на вершине стека (вероятно, decorView вашего Window), которыйсозданный Системой и предполагающий, что вся область доступна на Window, созданном системой.

0 голосов
/ 27 июня 2019

В основном мы используем родительский макет как линейный макет / относительный макет / ConstraintLayout / макет фрейма и т. Д. Таким образом, все классы расширяют ViewGroup.Пожалуйста, обратитесь к документации разработчика Google для лучшего понимания.

Прочитайте это -

https://developer.android.com/reference/android/view/ViewGroup.html

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