zoukankan      html  css  js  c++  java
  • 2018-2019-2 20189203 移动平台应用开发实践第七周学习总结

    第27、28、29、30章学习总结

    第27章 布局

    • (一) 线性布局
      线性布局在开发中使用最多,具有垂直方向与水平方向的布局方式,通过设置属性“android:orientation”控制方向,属性值垂直(vertical)和水平(horizontal),默认水平方向。
      android:gravity:内部控件对齐方式,常用属性值有center、center_vertical、center_horizontal、top、bottom、left、right等。
      这个属性在布局组件RelativeLayout、TableLayout中也有使用,FrameLayout、AbsoluteLayout则没有这个属性。
      center:居中显示,这里并不是表示显示在LinearLayout的中心,当LinearLayout线性方向为垂直方向时,center表示水平居中,但是并不能垂直居中,此时等同于center_horizontal的作用;同样当线性方向为水平方向时,center表示垂直居中,等同于center_vertical。
      top、bottom、left、right顾名思义为内部控件居顶、低、左、右布局。
      这里要与android:layout_gravity区分开,layout_gravity是用来设置自身相对于父元素的布局。
      android:layout_weight:权重,用来分配当前控件在剩余空间的大小。
      使用权重一般要把分配该权重方向的长度设置为零,比如在水平方向分配权重,就把width设置为零。
    • (二) RelativeLayout
      相对布局可以让子控件相对于兄弟控件或父控件进行布局,可以设置子控件相对于兄弟控件或父控件进行上下左右对齐。
      RelativeLayout能替换一些嵌套视图,当我们用LinearLayout来实现一个简单的布局但又使用了过多的嵌套时,就可以考虑使用RelativeLayout重新布局。
      相对布局就是一定要加Id才能管理。
    • (三) FrameLayout
      帧布局或叫层布局,从屏幕左上角按照层次堆叠方式布局,后面的控件覆盖前面的控件。
      该布局在开发中设计地图经常用到,因为是按层次方式布局,我们需要实现层面显示的样式时就可以
      采用这种布局方式,比如我们要实现一个类似百度地图的布局,我们移动的标志是在一个图层的上面。
      在普通功能的软件设计中用得也不多。层布局主要应用就是地图方面。
    • (四) AbsoluteLayout
      绝对布局中将所有的子元素通过设置android:layout_x 和 android:layout_y属性,将子元素的坐标位置固定下来,即坐标(android:layout_x, android:layout_y) ,layout_x用来表示横坐标,layout_y用来表示纵坐标。屏幕左上角为坐标(0,0),横向往右为正方,纵向往下为正方。实际应用中,这种布局用的比较少,因为Android终端一般机型比较多,各自的屏幕大小。分辨率等可能都不一样,如果用绝对布局,可能导致在有的终端上显示不全等。
    • (五) TableLayout
      表格布局,适用于多行多列的布局格式,每个TableLayout是由多个TableRow组成,一个TableRow就表示TableLayout中的每一行,这一行可以由多个子元素组成。实际上TableLayout和TableRow都是LineLayout线性布局的子类。但是TableRow的参数android:orientation属性值固定为horizontal,且android:layout_width=MATCH_PARENT,android:layout_height=WRAP_CONTENT。所以TableRow实际是一个横向的线性布局,且所以子元素宽度和高度一致。
      注意:在TableLayout中,单元格可以为空,但是不能跨列,意思是只能不能有相邻的单元格为空。
      TableLayout常用属性:
      android:shrinkColumns:设置可收缩的列,内容过多就收缩显示到第二行
      android:stretchColumns:设置可伸展的列,将空白区域填充满整个列
      android:collapseColumns:设置要隐藏的列
      列的索引从0开始,shrinkColumns和stretchColumns可以同时设置。
      子控件常用属性:
      android:layout_column:第几列
      android:layout_span:占据列数
    • (六) GridLayout(网格布局)
      作为android 4.0 后新增的一个布局,与前面介绍过的TableLayout(表格布局)其实有点大同小异;
      不过新增了一些东东
      ①跟LinearLayout(线性布局)一样,他可以设置容器中组件的对齐方式
      ②容器中的组件可以跨多行也可以跨多列(相比TableLayout直接放组件,占一行相比较)
      因为是android 4.0新增的,API Level 14,在这个版本以前的sdk都需要导入项目。这里不解释。

    常用属性:
    排列对齐:
    ①设置组件的排列方式: android:orientation="" vertical(竖直,默认)或者horizontal(水平)
    ②设置组件的对齐方式: android:layout_gravity="" center,left,right,buttom

    设置布局为几行几列:
    ①设置有多少行: android:rowCount="4" //设置网格布局有4行
    ②设置有多少列: android:columnCount="4" //设置网格布局有4列

    设置某个组件位于几行几列
    注:都是从0开始算的哦!
    ①组件在第几行: android:layout_row = "1" //设置组件位于第二行
    ②组件在第几列: android:layout_column = "2" //设置该组件位于第三列

    设置某个组件横跨几行几列:
    ①横跨几行: android:layout_rowSpan = "2" //纵向横跨2行
    ②横跨几列: android:layout_columnSpan = "3" //横向横跨2列

    第28章监听器

    监听器是一个存在于View类下的接口,一般以On**Llistener命名,实现该接口需要复写相应的on(View v)方法。
    监听器有三种实现方法:
    1.在Activity中定义一个内部类继承监听器接口(这里是OnClickListener)
    2.实现匿名内部类。这种方法适合只希望对监听器进行一次性使用的情况,在该代码块运行完毕之后,该监听器也就不复存在了。
    3.利用布局文件中的onClick属性,并在实现文件中实现该方法。注意的是这里的方法名应该和布局文件中onClick属性的方法名相同,该方法必须是public方法。

    第29章操作栏

    操作栏使用android.app.ActionBar类来表示。
    一般来说,Android 默认的状态栏样式表现为黑底白字,如果我们应用的标题栏背景色也为黑色,那就能与状态栏很好地衔接在一起,体验极佳。反之,如果为其他的颜色,整个界面的呈现效果就会大打折扣。
    幸运的是,Android 4.4 版本开始,系统提供了相应的 API,支持状态栏全透明化,界面 Content View 可以延伸到状态栏上,填充状态栏背景色。而在 Android 5.0 版本开始,系统在此基础上做了进一步优化和规范,能够实现动态改变状态栏背景色,在透明度上默认呈现为半透明化,可定制化程度更高。

    第30章 菜单

    菜单的分类

    菜单是Android应用中非常重要且常见的组成部分,主要可以分为三类:选项菜单、上下文菜单/上下文操作模式以及弹出菜单。它们的主要区别如下:

    选项菜单是一个应用的主菜单项,用于放置对应用产生全局影响的操作,如搜索/设置。
    
    上下文菜单是用户长按某一元素时出现的浮动菜单。它提供的操作将影响所选内容,主要应用于列表中的每一项元素(如长按列表项弹出删除对话框)。上下文操作模式将在屏幕顶部栏(菜单栏)显示影响所选内容的操作选项,并允许用户选择多项,一般用于对列表类型的数据进行批量操作。
    
    弹出菜单以垂直列表形式显示一系列操作选项,一般由某一控件触发,弹出菜单将显示在对应控件的上方或下方。它适用于提供与特定内容相关的大量操作。
    

    使用XML定义Menu

    理论上而言,使用XML和Java代码都可以创建Menu。但是在实际开发中,往往通过XML文件定义Menu,这样做有以下几个好处:

    使用XML可以获得更清晰的菜单结构
    将菜单内容与应用的逻辑代码分离
    可以使用应用资源框架,为不同的平台版本、屏幕尺寸创建最合适的菜单(如对drawable、string等系统资源的使用)
    

    要定义Menu,我们首先需要在 res 文件夹下新建 menu 文件夹,它将用于存储与Menu相关的所有XML文件。

    我们可以使用

    三种XML元素定义Menu,下面简单介绍一下它们:

    <menu>是菜单项的容器,<menu>元素必须是该文件的根节点,并且能够包含一个或多个<item>和<group>元素。
    <item>是菜单项,用于定义MenuItem,可以嵌套<menu>元素,以便创建子菜单。
    <group>是<item>元素的不可见容器(可选),可以使用它对菜单项进行分组,使一组菜单项共享可用性和可见性等属性。
    

    其中,是我们主要需要关注的元素,它的常见属性如下:

    android:id:菜单项(MenuItem)的唯一标识
    android:icon:菜单项的图标(可选)
    android:title:菜单项的标题(必选)
    android:showAsAction:指定菜单项的显示方式。常用的有ifRoom、never、always、withText,多个属性值之间可以使用|隔开。
    
    • 一、Menu标题菜单项创建
    1. 在Android工程目录下的res包下,右键选择New菜单项下的Android resource directory,并以menu命名文件夹的名字;
    2. 右键menu文件夹,选择Menu resource file选项,创建main_menu.xml文件
    • 二、创建上下文菜单项
      registerForContextMenu(View view)绑定相关点击控件长按出菜单项
  • 相关阅读:
    01: Django rest framework 基础
    配置java环境 启动服务
    配置文件详解
    介绍
    所有的编译安装包
    mysql 二进制安装
    使用Python 、 go 语言测试rabbitmq的工作机制
    Haproxy + Rabbit 集群 简要介绍
    rabbitmqctl 的常用命令
    虚拟主机介绍
  • 原文地址:https://www.cnblogs.com/23du/p/10706709.html
Copyright © 2011-2022 走看看