今天学习了布局管理器,格局自己的学习内容和课程,我主要学习了两种管理布局方式

一:LinearLayout线性布局

线性布局是指布局里面的内容成线性排列,有两种排列方式,横向排列和纵向排列,而排列方式是由属性orientation所决定,横向:vertical,纵向:horizontal,还有权重weight,layout_width,layout_height等等。

代码案例:

activity_main.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<LinearLayout
android:layout_width="200dp"
android:layout_height="200dp"
android:orientation="vertical"
android:background="#000000"
android:paddingLeft="20dp"
android:paddingRight="20dp"
android:paddingTop="20dp"
android:paddingBottom="20dp"> <View
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#FF0033"/>
</LinearLayout>
</LinearLayout>

运行结果:

二:RelativeLayout相对布局

在RelativeLayout中,控件可以通过各种属性来设置自己相对其他控件的位置,来达到自己位置切换的目的。

  alignParent系列属性:想跟哪对齐就把哪个属性设置成true

andoid:ayout_alignParentLeft="true",左对齐

                  android:layout_alignParentStart="true",起始位置对齐

               android:layout_alignParentEnd="true",结束为止对齐

center系列属性:可以直接指定组件位于中心

android:layout_centerInParent="true" ,相对父容器中心对齐

android:layout_centerHorizontal="true" ,相对父容器水平对齐

android:layout_centerVertical="true",相对父容器垂直对齐

gravity和ignoreGravity属性:gravity设置了容器自己内的子组件的对齐方式,被ignoreGravity指定的组件不受gravity的影响

 兄弟组件定位:

android:layout_above="@id/tv"在组件的上方,其余below.toLeftOf,alignTop......这些都类似,这里以后用到再做详细说明

代码案例:

activity_main.xml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"> <View
android:id="@+id/view_1"
android:layout_width="100dp"
android:layout_height="100dp"
android:background="#000000"/> <View
android:id="@+id/view_2"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_toRightOf="@+id/view_1"
android:background="#ff0033"/> <View
android:id="@+id/view_3"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_toRightOf="@+id/view_2"
android:background="#0033ff"/>
</RelativeLayout>

运行结果:

match_parent:表示让当前控件的大小和父布局的大小一样,由父布局来决定当前控件的大小

wrap_content:表示让当前的控件大小能够刚好包含里面的内容,由控件内容决定当前控件的大小

思想感悟:

app学习,和之前的javaWeb的学习的主要思想和架构有很大的相似之处,只是里面的语法和表达方式,略有差别,继续后期的学习,掌握其主要核心。

App的布局管理的更多相关文章

  1. Python图形界面开发—wxPython库的布局管理及页面切换

    前言 wxPython是基于Python的跨平台GUI扩展库,对wxWidgets( C++ 编写)封装实现.GUI程序的开发中界面布局是很重要的一个部分,合理的页面布局能够给予用户良好使用体验.虽然 ...

  2. GUI学习之二十七——布局管理学习总结

    今天讲一个大的内容——布局管理. 一.布局管理的诞生背景 在前面所讲的所有案例中,我们都是用采用手动布局的方式来布局的.结合个案例来说明一下:在一个界面上放三个label,三个label纵向排列 fr ...

  3. 从头学Android之Android布局管理:LinerLayout线性布局

    LinerLayout线性布局: 这种布局方式是指在这个里面的控件元素显线性,我们可以通过setOrientation(int orientation)来指定线性布局的显示方式,其值有:HORIZON ...

  4. [置顶] Android布局管理器 - 详细解析布局实现

    布局管理器都是以ViewGroup为基类派生出来的; 使用布局管理器可以适配不同手机屏幕的分辨率,尺寸大小; 布局管理器之间的继承关系 : 在上面的UML图中可以看出, 绝对布局 帧布局 网格布局 相 ...

  5. android开发4:Android布局管理器1(线性布局,相对布局RelativeLayout-案例)

    控件类概述 View 可视化控件的基类 属性名称 对应方法 描述 android:background setBackgroundResource(int) 设置背景 android:clickabl ...

  6. wxpython 布局管理

    一个典型的应用程序是由不同的部件.这些小部件被放进容器部件.一个程序员必须管理应用程序的布局.这不是一项容易的任务.在wxPython我们有两个选择. *absolute positioning*si ...

  7. 一步一步学android之布局管理器——LinearLayout

    线性布局是最基本的一种布局,在基本控件篇幅中用到的都是LinearLayout,线性布局有两种方式,前面也有用到,一种是垂直的(vertical),一种是水平的(horizontal).我们同样来看下 ...

  8. 5、Java Swing布局管理器(FlowLayout、BorderLayout、CardLayout、BoxLayout、GirdBagLayout 和 GirdLayout)

    5.Java-Swing常用布局管理器       应用布局管理器都属于相对布局,各组件位置可随界面大小而相应改变,不变的只是其相对位置,布局管理器比较难以控制,一般只在界面大小需要改是才用,但即使这 ...

  9. 【Android 应用开发】AndroidUI设计之 布局管理器 - 详细解析布局实现

    写完博客的总结 : 以前没有弄清楚的概念清晰化 父容器与本容器属性 : android_layout...属性是本容器的属性, 定义在这个布局管理器的LayoutParams内部类中, 每个布局管理器 ...

随机推荐

  1. Golang的运算符-位运算符

    Golang的运算符-位运算符 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.位运算符概述 常见的位逻辑运算符: &: 位与运算符,表示AND(表示所有条件都得匹配), ...

  2. centos7上安装mysql8

    话不多说仍然是更换虚拟机的系列安装. 一.首先下载最先版的mysql.到官网下载https://dev.mysql.com/downloads/file/?id=477146 下载后上传linux到相 ...

  3. 关于TCP连接的3次握手和4次挥手

    3次握手: 关键在于双方都需要确认自己的发信和收信功能正常,收信功能通过接收对方信息得到确认,发信功能需要发出信息—>对方回复信息得到确认. 举个日常例子,打电话时我们对话如下: 如上,需要第三 ...

  4. Windows + Python + flup + flask + fastcgi + Nginx配置

    Nginx配置 # HTTPS server { listen ssl; server_name kvaccount.xx.io; ssl_certificate "C:/xx/conf/s ...

  5. vue全家桶router、vuex、axios

    main.js import Vue from 'vue' import App from './App' import router from './router' import store fro ...

  6. 第十四篇Django-model进阶(中介模型,查询优化,extra,整体插入)

    Django-model进阶(中介模型,查询优化,extra,整体插入) 阅读目录(Content) 中介模型 查询优化 extra 整体插入 中介模型 处理类似搭配 pizza 和 topping ...

  7. js模式-观察者模式

    // 主题,接收状态变化,触发每个观察者 class Subject { constructor() { this.state = 0 this.observers = [] } getState() ...

  8. JavaScript的运算符、条件判断、循环、类型转换(9.25 第十一天)

    JS的运算符 加 + 减 - 乘 * 除 / 取余 % 自增 ++ 自减 -- 赋值运算符 a=3 a+=3  a=a=3 a-=3   a=a-3 a*=3  a=a*2 a/=3   a=a/3 ...

  9. html特殊字符的写法

    符号 写法 (空格)   <(小于号) < >(大于号) > " " ®(已注册) ® ©(版权) © ™(商标) ™ (半方大的空白)   (全方大的空白 ...

  10. Kubernetes1-K8s的简单介绍(转载)

    一.简介 1.什么是Kubernetes 简称K8s,用8代替8个字符"ubernerte"而成的速写,K8s是一个开源的容器编排平台,它是一个跨主机集群的开源容器调度平台,用于管 ...