蓝桉云顶

Good Luck To You!

Android开发中,常用布局有哪些?

android常用布局有线性布局(LinearLayout)、相对布局(RelativeLayout)、约束布局(ConstraintLayout)、帧布局(FrameLayout)和表格布局(TableLayout)。

Android 常用布局

目录

1、[LinearLayout(线性布局)](#linearlayout)

2、[RelativeLayout(相对布局)](#relativelayout)

3、[FrameLayout(帧布局)](#framelayout)

4、[TableLayout(表格布局)](#tablelayout)

5、[ConstraintLayout(约束布局)](#constraintlayout)

LinearLayout(线性布局)

LinearLayout 是 Android 中最常用的布局之一,它按照水平或者垂直的线性顺序依次排列子控件,通过 android:orientation 属性可以指定排列的方向。

属性介绍

android:orientation:指定排列方向,可以是 vertical(垂直)或 horizontal(水平)。

android:layout_weight:设置控件在布局中的权重,用于分配剩余空间。

android:gravity:设置控件在其容器中的对齐方式。

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/linearLayout1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button 1"/>
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button 2"/>
</LinearLayout>

示例代码

LinearLayout linearLayout = new LinearLayout(this);
linearLayout.setOrientation(LinearLayout.VERTICAL);
Button button1 = new Button(this);
button1.setText("Button 1");
Button button2 = new Button(this);
button2.setText("Button 2");
linearLayout.addView(button1);
linearLayout.addView(button2);

RelativeLayout(相对布局)

RelativeLayout 允许子控件相对于其他控件或父容器进行定位,通过使用 android:layout_below、android:layout_toRightOf 等属性,可以实现复杂的用户界面布局。

属性介绍

android:layout_above:将当前控件置于指定控件之上。

android:layout_below:将当前控件置于指定控件之下。

android:layout_toLeftOf:将当前控件置于指定控件左侧。

android:layout_toRightOf:将当前控件置于指定控件右侧。

android:layout_alignParentTop:将控件与父容器顶部对齐。

android:layout_centerInParent:将控件置于父容器中心。

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/relativeLayout1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button 1"/>
    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/button1"
        android:text="Button 2"/>
</RelativeLayout>

示例代码

RelativeLayout relativeLayout = new RelativeLayout(this);
Button button1 = new Button(this);
button1.setText("Button 1");
RelativeLayout.LayoutParams params1 = new RelativeLayout.LayoutParams(
    RelativeLayout.LayoutParams.WRAP_CONTENT, 
    RelativeLayout.LayoutParams.WRAP_CONTENT
);
params1.addRule(RelativeLayout.ALIGN_PARENT_TOP);
relativeLayout.addView(button1, params1);
Button button2 = new Button(this);
button2.setText("Button 2");
RelativeLayout.LayoutParams params2 = new RelativeLayout.LayoutParams(
    RelativeLayout.LayoutParams.WRAP_CONTENT, 
    RelativeLayout.LayoutParams.WRAP_CONTENT
);
params2.addRule(RelativeLayout.BELOW, button1.getId());
relativeLayout.addView(button2, params2);

FrameLayout(帧布局)

FrameLayout 是最简单的布局之一,所有的子控件都堆放在屏幕的左上角,并且后添加的控件会覆盖先添加的控件。

属性介绍

android:layout_gravity:设置子控件在 FrameLayout 中的位置。

android:foreground:为 FrameLayout 设置前景图像。

<FrameLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/frameLayout1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button 1"/>
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom|right"
        android:text="Button 2"/>
</FrameLayout>

示例代码

FrameLayout frameLayout = new FrameLayout(this);
Button button1 = new Button(this);
button1.setText("Button 1");
frameLayout.addView(button1);
Button button2 = new Button(this);
button2.setText("Button 2");
FrameLayout.LayoutParams params2 = new FrameLayout.LayoutParams(
    FrameLayout.LayoutParams.WRAP_CONTENT, 
    FrameLayout.LayoutParams.WRAP_CONTENT,
    Gravity.BOTTOM | Gravity.RIGHT
);
frameLayout.addView(button2, params2);

TableLayout(表格布局)

TableLayout 以行和列的形式管理子控件,每一行由一个 TableRow 表示,适合创建表格形式的布局。

属性介绍

android:shrinkColumns:设置可收缩的列。

android:stretchColumns:设置可伸展的列。

android:collapseColumns:设置隐藏的列。

<TableLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/tableLayout1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
    <TableRow>
        <Button android:text="Button 1"/>
        <Button android:text="Button 2"/>
    </TableRow>
    <TableRow>
        <Button android:text="Button 3"/>
        <Button android:text="Button 4"/>
    </TableRow>
</TableLayout>

示例代码

TableLayout tableLayout = new TableLayout(this);
tableLayout.setStretchAllColumns(true); // 设置所有列可伸展
tableLayout.setShrinkAllColumns(true); // 设置所有列可收缩
TableRow row1 = new TableRow(this);
Button button1 = new Button(this);
button1.setText("Button 1");
row1.addView(button1);
Button button2 = new Button(this);
button2.setText("Button 2");
row1.addView(button2);
tableLayout.addView(row1);
TableRow row2 = new TableRow(this);
Button button3 = new Button(this);
button3.setText("Button 3");
row2.addView(button3);
Button button4 = new Button(this);
button4.setText("Button 4");
row2.addView(button4);
tableLayout.addView(row2);

ConstraintLayout(约束布局)

ConstraintLayout 允许更灵活地控制子控件的位置,非常适合复杂布局,通过约束条件,可以将控件放在相对位置,避免嵌套布局,提高性能。

属性介绍

app:layout_constraintLeft_toLeftOf:将控件的左边与另一个控件的左边对齐。

app:layout_constraintTop_toBottomOf:将控件的顶部与另一个控件的底部对齐。

app:layout_constraintRight_toRightOf:将控件的右边与另一个控件的右边对齐。

app:layout_constraintBottom_toTopOf:将控件的底部与另一个控件的顶部对齐。

app:layout_constraintStart_toStartOf:将控件的开始与另一个控件的开始对齐。

app:layout_constraintEnd_toEndOf:将控件的结束与另一个控件的结束对齐。

app:layout_constraintHorizontal_bias:设置水平偏差比例。

app:layout_constraintVertical_bias:设置垂直偏差比例。

app:layout_constraintDimensionRatio:设置宽高比。

app:layout_constraintCircle:设置圆形约束。

app:layout_constraintWidth_default:设置默认宽度约束。

app:layout_constraintHeight_default:设置默认高度约束。

app:layout_editor_absoluteX:设置绝对 X 坐标。

app:layout_editor_absoluteY:设置绝对 Y 坐标。

app:layout_constraintGuideline_begin:设置引导线的开始位置。

app:layout_constraintGuideline_end:设置引导线的结束位置。

app:layout_constraintGuideline_percent:设置引导线的百分比位置。

app:layout_goneMarginLeftapp:layout_goneMarginTopapp:layout_goneMarginRightapp:layout_goneMarginBottomapp:layout_goneMarginStartapp:layout_goneMarginEnd:当控件被设置为 GONE 时使用的外边距。

app:layout_constraintVertical_chainStyle:设置垂直链样式。

app:layout_constraintHorizontal_chainStyle:设置水平链样式。

app:layout_constraintHorizontal_bias:设置水平偏差比例。

app:layout_constraintVertical_bias:设置垂直偏差比例。

app:layout_constraintDimensionRatio:设置宽高比。

app:layout_constraintCircle:设置圆形约束。

小伙伴们,上文介绍了“android常用布局”的内容,你了解清楚吗?希望对你有所帮助,任何问题可以给我留言,让我们下期再见吧。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2024年11月    »
123
45678910
11121314151617
18192021222324
252627282930
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
文章归档
网站收藏
友情链接