上次介绍了一个Android App项目的文件结构以及各个文件的大致含义,本篇主要介绍Android的界面布局(Layout)。Android界面布局的目的是为了合理利用屏幕空间,并能适配多种屏幕。我们可以利用布局来设计各个控件的位置排布。
Android提供了6种基本布局类:帧布局(FrameLayout)、线性布局(LinearLayout)、绝对布局(AbsoluteLayout)、相对布局(RelativeLayout)、表格布局(TableLayout)和网格布局(GridLayout)。另外,Android还推出一种新的布局方式:ConstraintLayout。有些布局像绝对布局等使用较少,本文只针对线性布局和相对布局等常用布局进行重点介绍,有时间再补齐其它布局方式。
FrameLayout帧布局,是一种最简单的布局方式。这种布局下,所有的视图和控件都将固定在屏幕的左上角显示,不能指定视图和控件的位置,但允许多个视图和控件的叠加,帧布局很少直接使用,而是使用它的子类,如TextSwitcher、ImageSwitcher和ScrollView。
布局模拟效果如下:
这里直接在一个大的垂直线性布局里面加三个水平的线性布局,实现套娃 。这里特别注意最后一个线性布局中的 android:layout_weight=“1” ,这个属性是用来调整线性布局中几个控件的权重占比;各个小控件的layout_width和layout_height属性的wrap_content和match_parent分别指该控件的宽度/高度是包含自身内容或填满父控件。但是过多的嵌套会消耗很多的系统资源,且看起来结构复杂,所以可以线性布局配合相对布局一起使用。
相对布局也是比较常用的布局之一,它允许一个视图指定相对于其它视图或者父视图的位置。可以左右对齐、上下对齐或者置于父视图中间。同样我们给出一个实例。
3.1 使用相对布局实现登录界面还是上面那个登录界面的实现,使用相对布局稍微麻烦一点点。
实现的效果如图:
这里重点介绍几个用到的属性:
1.根据父容器来定位(图源:菜鸟教程RelativeLayouthttps://www.runoob.com/w3cnote/android-tutorial-relativelayout.html):
通俗的说就是可以直接选择自己在父容器中的相对位置,如:android:layout_alignParentEnd=“true"和android:layout_centerVertical=“true"分别表示:和父控件右对齐、在父控件中垂直居中,其它命令也可类推。
2.根据其它控件布局:
就是可以选择和其它同级控件选择对齐、相对方位等,如android:layout_below=”@id/password"和android:layout_alignTop=”@id/user"两条命令分别表示:处于@id控件的下面、和@id控件顶部对齐,其它命令类推。
本文主要对Android的几种界面布局方式进行了简要介绍,其中最常用的两种布局方式为线性布局(LinearLayout)和相对布局(RelativeLayout),也是本文中重点介绍的,了解Android界面布局方法是Android开发中必不可少的一步。
作者:小切~