TableLayout
TableLayout
可与表示一行的TableRow
配合使用,TableLayout
有如下属性:
android:stretchColumns
:当该行不被占满时,使用该属性指定可以被拉伸的列。android:shrinkColumns
:当控件超出显示范围时,使用该属性指定可以被压缩的列。android:collapseColumns
:指定被隐藏的列。
<TableLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:stretchColumns="0"
android:shrinkColumns="0"
android:collapseColumns="1"
>
<TableRow>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="one"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="two"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="three"/>
</TableRow>
<TableRow>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="one"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="two"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="three"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="four"/>
</TableRow>
</TableLayout>
RelativeLayout
<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_columnSpan="3"
android:layout_gravity="center"
android:text="one"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_row="1"
android:layout_column="0"
android:text="two"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="three"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:text="four"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="five"/>
</GridLayout>
ConstraintLayout
如果在此布局中未添加约束,控件自动放于左上角。
<androidx.constraintlayout.widget.ConstraintLayout 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"
tools:context=".MainActivity">
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="one"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="two"
app:layout_constraintEnd_toEndOf="@+id/button"
app:layout_constraintTop_toBottomOf="@+id/button" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="60dp"
android:text="three"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/guideline2"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="60dp"
android:text="four"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="@+id/guideline2"
app:layout_constraintTop_toTopOf="parent" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.5" />
</androidx.constraintlayout.widget.ConstraintLayout>