我正在测试LinearLayout
并使用2 LinearLayout
创建TextView
。
LinearLayout
具有属性gravity="center_vertical"
,TextView
中的第一个LinearLayout
具有属性layout_gravity="top"
。
gravity="center_vertical"
的{p> LinearLayout
将其内容垂直放在中心位置。
layout_gravity="top"
的{{1}}告诉其容器让我站在最顶层。
那么如果他们在一起会发生什么?
在我的实验中,' layout_gravity =" top"'不起作用。
以下是我的代码和结果:
TextView
答案 0 :(得分:0)
最有可能的是,父元素的引力是第一个被执行的。您无法看到layout_gravity顶部的效果,因为它遵循设置为其父元素的重力。如果您不希望第一个文本视图出现在中间,则不应将gravity center_vertical设置为linearlayout。
答案 1 :(得分:0)
Jay Bryant Casilang有点正确。这是因为父母的引力。但还有更多。这也是因为它是LinearLayout
。
https://developer.android.com/guide/topics/ui/layout/linear.html
LinearLayout
专为视图设置为“相邻”,可以是垂直或水平。因为您在第一个android:gravity="center_vertical"
上的LinearLayout
和android:layout_gravity="top"
上设置了TextView
,所以您希望看到的是:
然而,这意味着两个布局之间会有间距。 “无法计算”的间距(没有边距,没有填充等)。
LinearLayout
中不允许这样做。
LinearLayout
的所有孩子必须以某种方式彼此相邻(以线性的方式,得到它?)
顺便说一下,我达到了这样的顶级:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="textview 1"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:text="textview 2"/>
</RelativeLayout>
希望这很清楚。