我知道这个问题是问了很多,因为我尝试了很多例子张贴在这里,但我就是不能让它工作,这是我有:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:cardview="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:background="#3F51B5"
android:padding="5dp"
android:paddingBottom="500dp">
<LinearLayout
android:orientation="vertical"
android:minWidth="25px"
android:minHeight="25px"
android:layout_width="match_parent"
android:layout_height="0dp"
android:id="@+id/linearLayout2"
android:gravity="bottom"
android:layout_weight="1">
<Button
android:text="Button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/btnTarjeta"
android:background="@color/my_purple"
android:layout_marginBottom="20dp"
android:layout_marginTop="20dp" />
<TextView
android:text="Text"
android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@color/my_white"
android:id="@+id/textView1"
android:fontFamily="sans-serif-medium"
android:layout_marginBottom="10dp" />
<RadioGroup
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/radioGp"
android:minWidth="25px"
android:minHeight="25px"
android:layout_marginBottom="10dp" />
</LinearLayout>
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/linearLayout3"
android:layout_gravity="bottom">
<Button
android:text="Button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/button2" />
<Button
android:text="Button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/button1" />
</LinearLayout>
</LinearLayout>
其中一个可能是“问题”的事情是,我动态地填充单选按钮组内的单选按钮,所以有时可以是4个单选按钮,而在另一个时刻可以是1个,我不知道这是否会影响我正在尝试做的任何事情。
我想做的是把第一个线性层放在顶部,第二个线性层放在按钮上,我做错了什么?
5条答案
按热度按时间aor9mmx11#
请下次更好地描述您的确切需求。我不确定,但也许您想要这个。将根目录
LinearLayout
height
更改为match_parent
,并删除第一个LinearLayout
android:gravity="bottom"
Screenshot of Android Studio Preview
6pp0gazn2#
因为
LinearLayout
gravity
并不总是按预期工作,所以我建议您使两个内部LinearLayout
都具有android:layout_height="wrap_content"
,并插入一个空的View
,它将垂直拉伸并填充顶部和底部内容之间的所有可用空间。emeijp433#
首先,您必须将主容器的高度设置为
match_parent
,这样,您将展开视图,使其成为设备屏幕的高度;其次,我无法理解为什么您的第一个子LinearLayout将0dp设置为android:layout_height
,但您应该将其设置为android:layout_height="wrap_content"
;最后,您需要将android:layout_gravity="bottom"
设置为第二个子LinearLayout。我还建议阅读android:layout_gravity =""和android:gravity =""的区别,这两个属性都是LinearLayout属性。
更新:
1.从主容器中删除android:gravity ="center_horizontal",它使孩子们转到中心。
1.从第一个子元素中删除android:gravity ="bottom" android:layout_weight ="1"为什么要告诉第一个线性布局去底部?
下面是一些干净的代码:
sulc1iza4#
您可以使用layout_weight. 80和20,它将在所有屏幕上工作
bmp9r5qi5#
您可以混合使用容器(布局)。
如果您想将控件放在一行中,但又想将其定位到底部,则可以混合使用
linear layout
和relative like
,如下所示:我在相对布局中有一个线性视图:
最终结果: