当前位置:   article > 正文

AS基本布局_as布局

as布局

RelativeLayout
AndroidStudio里面支持的布局有挺多种的,但是最最重要的是RelativeLayout(相对布局)和LinearLayout(线性布局),熟练掌握这两种布局也非常够用了,当然还有GridLayout…但是对于初学者,先学会了相对布局和线性布局,再去学习其他布局,就会觉得非常简单轻松了。还有一个非常有用的布局,叫RecyclerLayout,因为要结合adapter使用,所以对于初学者略难,这里就先不讲了,之后会非常详细的介绍它。

学习布局需要掌握的东西很简单,就是它有的属性,以及取不同属性值可以达到的效果,下面我就慢慢列出来。

layout_width
layout_height
这两个属性就决定了布局的宽度和高度,把RelativeLayout想象成一个相框或者一个容器,在这个相框里面可以装其他的组件。对于嵌套在相框里面的组件,其所在的相框就是它的父空间。这个相框的大小呢,就用上面这两个属性决定,取值有三种:

wrap_content 刚刚把文字组件包裹满的长度
match_parent 撑满整个父空间的长度
100px 具体的像素值
对于相对布局有一个地方要注意!!!

相对布局里面的组件需要设置id(在同一个.xml文件里面的所有组件,其id不可以重复哦~)然后用layout_below设置组件的相对位置。

<?xml version="1.0" encoding="utf-8"?>

<Button
    android:id="@+id/button_1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Button 1"
    />

<Button
    android:id="@+id/button_2"
    android:layout_below="@id/button_1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Button 2"
    />
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
例如上面这个例子,在RelativeLayout里面有两个按钮,第一个按钮的id是button_1,android:id="@+id/button_1",第二个按钮的id是button_2,为button_2设置了android:layout_below="@id/button_1"表示按钮2在按钮1的下面。所以效果图如下:

如果我不为按钮2设置相对向下的对象会怎样呢?也就是删掉android:layout_below="@id/button_1"。答案是按钮二会覆盖按钮一。

如果想让按钮居中怎么办?答案就是为RelativeLayout添加一个属性  android:gravity=“center”

如果继续追问,我希望按钮一和按钮二并排在一起怎么办?答案是:sorry,RelativeLayout做不到啊~~

但是LinearLayout可以做到哦!

RelativeLayout还有很多其他的属性,可以自己试着玩,重要的属性就是上面这些,我用红色的粗体标记啦~

3.LinearLayout
线性布局要灵活一些,在实际应用上也是最最最广泛的。

layout_width
layout_height
和相对布局一样的用法和属性值,我就不赘述了!

区别于RelativeLayout,LinearLayout就不要求每个组件都要设置自己的id了,但是最好还是设置一下,这是一个好习惯哦。

那么问题来了,我怎么设置两个组件是横着并排还是竖着并排呢??现在就隆重介绍线性布局的重要属性 orientation

取值有两种:vertical(垂直)和 horizontal(水平)

<Button
    android:id="@+id/button_1"
    android:layout_width="200px"
    android:layout_height="100px"
    android:text="Button 1"
    />

<Button
    android:id="@+id/button_2"
    android:layout_width="200px"
    android:layout_height="100px"
    android:text="Button 2"
    />

<Button
    android:id="@+id/button_3"
    android:layout_width="200px"
    android:layout_height="100px"
    android:text="Button 3"
    />
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

android:orientation="horizontal"决定了容器里面的所有组件都绝对是水平排列的
!!!需要注意的就是,哪怕我的组件已经装不下了,也不会被挤到下一排,而是只显示一截,甚至完全不显示。

<?xml version="1.0" encoding="utf-8"?>

<Button
    android:id="@+id/button_1"
    android:layout_width="200px"
    android:layout_height="100px"
    android:text="Button 1"
    />

<Button
    android:id="@+id/button_2"
    android:layout_width="200px"
    android:layout_height="100px"
    android:text="Button 2"
    />
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

android:orientation="vertical"决定了容器里的组件都是垂直排列,这就很好理解了。

线性布局还有一个重要的属性 layout_weight 取值一般是1、2、3…表示权重的大小,例如:

<Button
    android:id="@+id/button_1"
    android:layout_width="200px"
    android:layout_height="100px"
    android:layout_weight="1"
    android:text="Button 1"
    />

<Button
    android:id="@+id/button_2"
    android:layout_width="200px"
    android:layout_height="100px"
    android:layout_weight="2"
    android:text="Button 2"
    />
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

LinearLayout的强大就在于它是可以嵌套的,从而实现很多复杂的布局。

为了巩固你对它的认识,我出一个小小的题目,这是我的课程设计的一个页面,你会怎么设计这个布局呢??

————————————————
版权声明:本文为CSDN博主「qq_42183184」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_42183184/article/details/82528910

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

闽ICP备14008679号