我是Android开发的新手,所以这可能是一个显而易见的问题,但是我查看了多个来源,但找不到答案。如果将widget元素放置在layout元素内,那么这些widget的父元素就是layout元素,对吗?那么,布局的父元素是什么?因为在默认生成的文件activity_main.xml(用于布局)中,最顶部的约束布局元素具有属性 android:layout_width =“ match_parent” 。那么,此约束布局元素的父级是什么?
答案 0 :(得分:0)
基本上,我们将父布局用作线性布局/相对Layou / ConstraintLayout /框架布局等。因此,所有这些都是扩展ViewGroup的类。请参阅Google开发者文档以获取更好的理解。
阅读本-
https://developer.android.com/reference/android/view/ViewGroup.html
答案 1 :(得分:0)
match_parent
是视图根据其父级延伸的固定值。
例如,假设您在RelativeLayout中有一个Textview。如果将Textview设置为与父级匹配,则它将根据其父级/根视图(相对布局)进行拉伸。
因此基本上,它的高度和宽度与父版式相同。
答案 2 :(得分:0)
您的ConstraintLayout
是Activity
的根布局,但这只是系统创建的布局的一部分。
例如,您可以获取ConstraitLayout
的父级布局的引用:
ViewGroup layoutRoot = findViewById(android.R.id.content);
设置match_parent
时,View
(布局是ViewGroup
,而只是View
)将尝试填充其父布局中的可用空间。因此,以某种方式,它只是告诉您视图在X / Y轴上可以增长多少。对于您而言,您的ConstraintLayout
会不断增长,以匹配android.R.id.content
当然,堆栈的顶部有一个视图(可能是decorView
的{{1}}),由系统创建,并假设Window
上有整个可用区域由系统创建。