当前位置:   article > 正文

2.AndroidStdio入门:布局管理器_android stdio的布局管理器

android stdio的布局管理器

1、布局管理器简介

布局管理器负责安排一个区域内的多个控件的大小和位置。从外面看,布局管理器是一个控件;从内部看,布局管理器又是一个容器。从代码层面来说,布局管理器类都直接或间接派生自ViewGroup类。从运行时的对象层面来说,布局管理器对象可以管理多个控件对象。布局管理器可以嵌套

Android提供多种布局管理器,采用不同方式管理内部控件。可以采用布局文件和Java代码两种方式创建和管理布局管理器。Android常用布局管理器有:

  • 线性布局管理器LinearLayout
  • 表格布局管理器TableLayout
  • 帧布局管理器FrameLayout
  • 相对布局管理器RelativeLayout
  • 约束布局管理器ConstraintLayout

2、线性布局LinearLayout

线性布局的方式

  • 线性布局是将放入其中的组件按照垂直水平方向来布局
  • 每一行(针对垂直排列)或每一列(针对水平排列)中只能放一个组件
  • 不会换行,当组件一个挨着一个排列到窗体的边缘后,剩下的组件将不会被显示出来

image-20230915171038178

如何新建线性布局

1、 新建一个线性布局文件

image-20230915171516057

image-20230915171615885

2、将组件拖进来并依次点击设置id

image-20230915171834785

3、调整组件宽度

  • wrap_content:宽度为文字大小宽度
  • match_parent:宽度为自适应屏幕宽度

image-20230915172112569

在MyActivity中使用这个布局

package com.wcm.a0301uibasic;

import android.app.Activity;
import android.os.Bundle;

public class MyActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.linerlayout_test);
    }
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

3、表格布局TableLayout

表格布局方式

  • 以二维表格的形式来管理放入其中的UI组件
  • 在表格布局中,可以添加多个标记,表示一行
  • 中还可添加其他组件,每个按列排列
  • 继承了线性布局LinearLayout

image-20230915173121058

如何建立表格布局

1、新建表格布局文件

image-20230915174014087

2、设置表格布局样式,添加3个TableRow行,每行中添加相应的TextView、EditText、Button控件。

image-20230915174652990

3、为了使这些控件垂直居中,将TableLayout的Gravity属性设为center_vertical

image-20230915174907993

4、为了使这些控件水平居中,在每一行的左右两边各添加一个空的TextView(直接编辑XML代码),并将TableLayout的stretchColumns属性设为0,3(可拉伸列序号)

image-20230915175101949

image-20230915200937833

在MyActivity中使用这个布局

package com.wcm.a0301uibasic;

import android.app.Activity;
import android.os.Bundle;

public class MyActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.tablelayout_test);
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

4、帧布局FrameLayout

帧布局的方式:

  • 每个控件是一个帧
  • 多个帧层叠摆放,后面的帧覆盖前面的帧
  • 每个帧根据自己的gravity属性执行对齐

如何建立帧布局

1、首先创建帧布局文件

image-20230915202419041

2、向布局中添加三个TextView控件。

image-20230915202507812

3、第一个TextView的Width和Height设为300dp,Background设为#FFFF0000(红色)。第二个TextView的Width和Height设为200dp,Background设为#FFFF6600(橙色)。第三个TextView的Width和Height设为100dp,Background设为#FFFFEE00(黄色)

image-20230915202618785

image-20230915202740143

4、设置居中(三个都设置)

image-20230915203159259

效果图:

image-20230915203303546

在MyActivity中使用这个布局

package com.wcm.a0301uibasic;

import android.app.Activity;
import android.os.Bundle;

public class MyActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.framelayout);
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

5、相对布局RelativeLayout

相对布局是按照组件之间的相对位置来进行布局,如某个组件在另一个组件的左边、右边、上方或下方等

1、新建XML文件image-20230917135711673

2、添加文本,设置属性居中(勾中layout_centerInParent)

image-20230917135758222

image-20230917135943293

3、新建两个按钮,选中按钮,使按钮相对在文本下面(layout_below属性选文本id,相对于文本下边,layout_alignRight选文本,相对于文本右边;layout_toLeftOf选按钮,在按钮的左边)

image-20230917141017093

image-20230917140944883

4、在MyActivity中修改

package com.wcm.a0301uibasic;

import android.app.Activity;
import android.os.Bundle;

public class MyActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.relativelayout);
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

6. 约束布局ConstraintLayout

约束布局ConstraintLayout类似于相对布局,各组件以另一个组件或容器的位置来确定自己的位置。约束布局从API9加入,主要为了解决布局嵌套过多的问题,现在是默认布局。与相对布局相比,约束布局可以按比例约束,更好地适配各种屏幕大小。

1、新建布局文件

image-20230917151759117

2、添加button,Button水平位置为左侧距容器左侧32dp,垂直位置为容器居中,layout_constraintLeft_toLeftOf="parent"

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

3、Button2水平位置为右侧距容器右侧64dp,垂直位置为顶部与Button1顶部对齐,直接利用鼠标顶部连线对准,这样一个组件移动,另一个组件也会跟着移动,layout_constraintEnd_toEndOf="parent"

image-20230917152523023

4、新增textView,将左边和button右边对其

image-20230917152839362

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

textView1的水平位置为左侧与Button1右侧对齐,垂直位置为容器中偏移0.7

约束条件:layout_constraintLeft_toRightOf="@id/button1"

image-20230917153553829
5、TextView2的水平位置为左侧与TextView1的右侧对齐,垂直位置为文字基线与TextView1文字基线对齐

image-20230917153733570

两文本基线对齐,layout_constraintBaseline_toBaselineOf="@id/textView1"

image-20230917153902819

每一个组件通过约束确定横坐标和纵坐标

image-20230917155039581

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/642637
推荐阅读
相关标签
  

闽ICP备14008679号