我必须使用LinearLayout
在Android Studio中制作这种小应用程序类型的东西。
说明说,我们必须对根标签使用vertical
方向(顶部的文本为“ Here are my widgets”),然后对每行使用horizontal
方向。我唯一的问题是如何将东西放在不同的行上?
应该看起来像:
第1行:“这是我的小部件”(垂直方向)
第二排: 按钮 图像按钮
行3: 复选框 切换
我的问题是,当我制作一个新的嵌套LinearLayout
时,它会显示在第2行上。如何以horizontal
方向制作第3行?我尝试以LinearLayout
方向放置一个空的vertical
东西以将两行分开,但这没用。如何使CheckBox
和开关显示在按钮下方?我必须使用LinearLayout
,并且方向必须是水平的。这是我的代码:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_message"
android:textSize="30dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:gravity="fill"
android:layout_weight="1"
android:layout_height="wrap_content"
android:layout_width="200dp"
android:text="@string/ButtonText" />
<ImageButton
android:gravity="fill"
android:layout_weight="1"
android:layout_height="match_parent"
android:layout_width="200dp"
android:src="@drawable/flag"
android:scaleType="centerInside"/>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<CheckBox
android:layout_width="match_parent"
android:layout_height="match_parent" />
<Switch
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
答案 0 :(得分:0)
赞:
<?xml version="1.0" encoding="utf-8"?>
<Button
android:gravity="center"
android:layout_weight="1"
android:layout_height="wrap_content"
android:layout_width="0dp"
android:text="Button one" />
<ImageButton
android:gravity="center"
android:layout_weight="1"
android:layout_height="match_parent"
android:layout_width="0dp"
android:scaleType="centerInside"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<CheckBox
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginLeft="50dp"
android:text="Check Box"
android:layout_weight="1"/>
<Switch
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginRight="50dp"
android:layout_weight="1"/>
</LinearLayout>
答案 1 :(得分:0)
在这里,您的布局将简短地显示为:
<LinearLayout
android:id="@+id/root_linear_layout"
android:orientation="vertical"
// other attributes... >
<TextView
// This is ROW 1!
//welcome text goes here />
<LinearLayout
// This is ROW 2!
android:orientation="horizontal">
<Button
... />
<ImageButton
.../>
</LinearLayout> <-- Closing of the Row2 horizontal LinearLayout
<LinearLayout
// This is ROW 3!
android:orientation="horizontal">
<CheckBox
... />
<Switch
.../>
</LinearLayout> <-- Closing of the Row3 horizontal LinearLayout
</LinearLayout> <-- Closing of the root vertical LinearLayout
您可以根据需要填写其他属性(id,height,width等)。
我注意到您对每个android:layout_weight
使用了View
属性。如果使用此属性,则希望对android:weightSum
的父布局使用View
。例如,如果您需要Button
和ImageButton
的宽度比为50:50:
<LinearLayout
android:weightSum="2"> <--- starting of Row2 LinearLayout
<Button
android:layout_weight="1" ... />
<ImageButton
android:layout_weight="1 ... />
</LinearLayout> <--- closing of Row2 LinearLayout
有关weight
的更多详细信息,请参见here:)