《宅男的android开发指南》(翻译)--4

=====================================

这一次的内容比较多,下面是节选

==================================== 

使用Containers容器来进行布局

 

简单而言,我们使用各种layout布局类,来保存系统提供的小部件(Widget)。在前面我们已经介绍了,android中使用基于xml文件的布局,所以我们要了解,在android中,有哪些布局,以及如何使用xml来显示各种界面。

 

 Android,虽然有LinearLayout(线性布局),也提供了其他的一些支持。我们接下来会先介绍Linearlayout。然后会介绍其他的:RelativeLayout(相对布局)和Tablelayout(表格布局),以及使用ScrollView(可滚动视图)

 

 

了解LinearLayout

可以看到,线性布局是继承自ViewGroup

 

我们可以先看下ViewGroup

因为我们的UI界面,通常不会只有一个view视图的,所以android提供了这个ViewGroup的抽象类,类似于之前看到的Radiogroup.

ViewGroup中定义了可以添加View的方法

你可以随意的向它的子类中添加各种视图,用于程序代码中动态生成界面。

特别注意的是下面这个方法:

void

addView(View child, ViewGroup.LayoutParams params)

Adds a child view with the specified layout parameters.

我们可以通过ViewGroup.LayoutParams这类,把一个View作为布局中的一个元素,动态添加到界面中去。

我们在后面还会遇到这些

 

 

  刚才说了,LinearLayout是线性布局,也成为盒子(Box)模型:其中的小部件或者子容器(布局是可以嵌套的哦),都是按照线性(行,或者列)的方式一个挨着一个的排列的。类似于javaswing中的FlowLatout

 

 概念和属性

要是用LinearLayout,你可能会遇到下面的几个需要设置的属性,以控制容器的内容:

   分别是 the orientation(水平方向)the fill model (填充方式)the weight(重量)the gravity(排列方向),以及the padding(间距)、下面分别介绍

 

 

the orientation(水平方向)

  the orientation(水平方向)表示布局中的小部件,是按照行还是按照列排列。

添加android:orientation属性,可以设置horizontal水平(按行)排列,或者vertical垂直(按列)排列

 Ps orientation的值可以在运行时,通过调用LinearLayout类的setOrientation()方法来设置。以调整水平还是垂直排列。

 

Fill Model(填充模式)

  一般来说,小部件都需要设置宽度和高度。那么宽度和高度的值,就称为填充.

我们可以通过

   Android:layout_widthandroid:layout_height属性来设置。

我们一般可以通过如下三种方式来设置值:

l       可以提供具体的尺寸(dimension),比如125px,表示125个像素

l       可以提供wrap_content ,表示这个小部件会填充它的自然(初始)空间大小,一般除非它很大,都会按照系统自带的属性来填充属于它本来自己的空间的。

l       可以使用fill_parent ,表示小部件会填充满从它的位置开始,到所在的容器剩余的位置,其他的在它之后的小部件就会被掩盖掉(忽视掉,屏幕中看不到后面的小部件了)

 

后面的两种填充模式是常用的。因为他们是独立于屏幕尺寸的,会自适应。根据不同的设备,会自己调整大小一遍适应设备。

 

 

Weight(比重)

但是,如果我们需要两个小部件来分配容器中剩余的空间,我们该怎么办呢?比如,有两个多行输入的文本区域,按照列的方式排列。我们希望两个把剩余的填充满(什么意思呢?如果按照之前的wrap_方式,只能填充小部件自己的尺寸,如果按照fill_方式,只会显示其中一个,除非按照第一种方式,但是这种方式不能保证手机设备的自适应),所以我们这个时候就会用到weight这个属性了

   为了达到这种目的,我们可以添加 android:weight属性(不论是按照列还是行来排列,他们都是采用 fill的填充方式),这个weight属性表示这些小部件所占据的剩余空间的比例。

  如果,你设置了这两个小部件的 weight的值都一样,那么他们俩就会占据剩下空间的1/2(此时, androidweight都可以设置为1,表示1:1),如果一个设置1,另一个设置 2,那么前面一个就占有1/3,后一个占有2/3

 

 

Gravity(对齐方向)

 

默认情况下,所有的小部件都是左对齐 left)和置顶(Top)的。如果你希望按照自己的方式来对齐的话,可以设置一些特殊的值。

我们可以通过属性

   Android:layout_gravity 或者调用方法 setGravity()来设置。

一般对应的值有

   Left,center_horizontal,center_vertical right,等。。

 

 

Padding(间距)

默认情况下,小部件之间都是紧紧挨着的。如果你希望部件之间有些间距,那么可以通过设置padding来达到目的。

使用 android:padding  或者 setpadding()

我们直接通过下面的图来看就很容易明白这个属性的意思(其实,学习了html的同学,会很容易理解的)

 

 Androidpadding 设置的是四个方向都一样的值

如果希望设置某一边的,可以选择

  Android:paddingLeft ,android:paddingRight,android:paddingTop,android:paddingBottom

他们对应的值均是像素值,比如 5px

 

下面我们看一个例子吧:

首先是布局文件

 

 

布局文件显示

   界面中有两组单选按钮,只要选中一个按钮,就会让界面布局发生变化

分别是:水平,垂直,左,中,右的效果

那么我们看下Activity代码

 

 

代码很简单,在onCreate()方法中,我们实例化了布局中的两个RadioGroup,并分别给他们注册了监听器。用于监听单选按钮的状态,即setOnCheckedChangeListener(this)..

因为我们定义的Activity这个类的时候,让它实现了OnCheckedChangeListener这个接口。那么这个Activity本身就是一个监听器啦~~~^_^

在回调方法onCheckedChange()中,我们看到了每个按钮组的变化。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
毕业设计,基于SpringBoot+Vue+MySQL开发的公寓报修管理系统,源码+数据库+毕业论文+视频演示 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本公寓报修管理系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息,使用这种软件工具可以帮助管理人员提高事务处理效率,达到事半功倍的效果。此公寓报修管理系统利用当下成熟完善的Spring Boot框架,使用跨平台的可开发大型商业网站的Java语言,以及最受欢迎的RDBMS应用软件之一的MySQL数据库进行程序开发。公寓报修管理系统有管理员,住户,维修人员。管理员可以管理住户信息和维修人员信息,可以审核维修人员的请假信息,住户可以申请维修,可以对维修结果评价,维修人员负责住户提交的维修信息,也可以请假。公寓报修管理系统的开发根据操作人员需要设计的界面简洁美观,在功能模块布局上跟同类型网站保持一致,程序在实现基本要求功能时,也为数据信息面临的安全问题提供了一些实用的解决方案。可以说该程序在帮助管理者高效率地处理工作事务的同时,也实现了数据信息的整体化,规范化与自动化。 关键词:公寓报修管理系统;Spring Boot框架;MySQL;自动化;VUE
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值