layout_weight属性

layout_weight属性我们常常用到,但有时候会发现它还有一些奇怪的属性,比如大多数使用时会把宽度设置成0,但要是宽度不设置成0会有什么效果?

layout_weight的属性意义为权重大于零的控件会分配剩余控件

意义为如控件属性设置为wrap_content时,如一个控件内容为“123”,另外一个为“123456”,两者同时设置相同的权重,后者大小会比前者大,是由于先分配内容空间,后为两控件设置剩余空间。

当layout_width设置为match_parent时权重大的反而小

这也是很有意思的一点,如两个空间宽度都设置为适配父容器,此时空间的剩余大小即为总宽度减去两个总宽度,从而为负值,因此权重越大的组件分配的负空间越小,导致权重大的组件反而显示的比权重小的空间小。

Android的R文件

Android 的R文件作用与manifest似乎是相似的,manifest文件将Java文件组织在一起,即使是不同包名而同名的Java文件,而R文件则会在编译后为所有的xml文件同一创建静态变量,便于Java文件使用,而组织方式类似于树型,所以我们可以使用同名而不同文件的组件而不会发生冲突,不同设备适配布局时,可以新建layout—large(具体形式查看官方文档)文件夹的方式,将同名的XML文件区分成平板与手机不同类型保存,达到自动适配效果。

Android中的module

刚使用Androidstudio一定会为module所困惑,module可以理解为组件,与传统的eclipse不同的是,在Androidstudio中可以将workspace理解为project,而eclipse中的project则为module,但与eclipse不同的是,Androidstudio中的各个组件既分离又有关联,module可以通过配置gradle和manifest方式设置单独启动,甚至可以设置开关来选择那个启动,也可以添加依赖使相关的module互相使用,这就使模块化成为可能,在大型项目中,可以将项目相似的、都需要的baseadapter、baseactivity、basepresenter相关方法抽离出来,单独设置为一个module重复使用,也可以将类似的布局或大部分页面都会使用的基本方法如HTTP请求,支付接口,基本组件使用设置为一个module,提高复用率和开发效率,也使得项目文件结构清晰,便于二次开发。

Android 开发学习进程0.16 layout_weight属性 R文件关联XML Module的更多相关文章

  1. Android 开发学习进程0.28 腾讯TBS接入和相关问题

    TBS 的接入和使用 TBS 的接入 腾讯TBS是X5内核的升级版,可以当作webview 来打开 网页,可以以用来打开docx doc pdf 等文件,这里主要使用的是文件功能. 依赖接入 api ...

  2. Android 开发学习进程0.33 横竖屏切换

    安卓横竖屏大多数已经在manifest文件中将activity使用android:screenOrientation="portrait"属性写死,如简单的界面切换可直接更改为&q ...

  3. Android 开发学习进程0.14 Bindview recyclerview popwindow使用 window类属性使用

    BindView ButterKnife 优势 绑定组件方便,使用简单 处理点击事件方便,如adapter中的viewholder 同时父组件绑定后子组件无需绑定 注意 在setcontentview ...

  4. Android 开发学习进程0.12 自定义view activity的属性

    设置类似钉钉或tel的圆形用户名首字母头像 设置有两种方法,一是使用已有的库或自定义的view组件,但如果确定只是文字头像,也可使用textview的backgrou属性,调整资源文件使textvie ...

  5. Android 开发学习进程0.19 webview 的使用

    Android 中的webview android 中的webview是可以在app内部打开HTML等的网页,不必再打开浏览器,有两种实现方法,即webviewclient webChromeclie ...

  6. Android 开发学习进程0.15 adb cardview framelayout 控件设置状态获取焦点

    Android设备调试桥 即adb 使用adb进行无线调试的一些常用命令 adb tcpip 5555 设置调试端口为5555 防止冲突 adb shell ifconfig wlan0 查询局域网中 ...

  7. Android开发学习进程0.18 SharePreference的使用 AIDL

    SharePreference SharePreference是一种持久化存储手段,使用场景很多,如第一次打开时加载的用户协议等.适合小数据单进程的应用.将数据以键值对的形式存储在XML中. 使用方式 ...

  8. Android 开发学习进程0.17 Android资源文件selector textview显示两种不同字体

    selector 是安卓资源文件的一种,它可以使按钮等实现不同状态下的不同UI,不用在代码中实现,而使用方式有两种,一种在color文件下 创建.xml可以使按钮等字体在不同状态下的变化,其二是在dr ...

  9. Android 开发学习进程0.13 Androidstudio快捷键 xmlns

    xmlns XML namespace xml命名空间 其中主要是定义xml文件定义位置 前缀有三种,android app tools 后面为唯一标识符URI android 表示为引用自安卓系统 ...

随机推荐

  1. Python Ethical Hacking - BeEF Framework(2)

    Basic BeEF commands: Login the BeEF Control Panel, and go to Commands page. Create Alert Dialog: Run ...

  2. CSS过渡时间

    CSS过渡时间 基础知识 在了解CSS过渡时间之前,你应该先了解一下CSS的变形动画,可以参考之前的一篇博客. 我们的元素在属性发生变化时,如果没有特地的为它设置过渡时间,整个变化过程其实是以毫秒级别 ...

  3. Linux常用命令(学习笔记)

    命令编写以遇到的生产问题的前后为顺序进行记录 虚拟机的镜像是centos6.5版本,在这个版本下,我个人整理记录了一些在linux上常用的命令以及一些项目部署需要的jdk.tomcat.mysql等的 ...

  4. java 将整型数组转化为字符串

    java arrays 和arrayList 的区别 package com.vc; import java.util.Arrays; public class Demo05 { public sta ...

  5. Python3的一些基本输入输出

    # python3 # 基本输入输出 #学会使用split()的使用是关键,input()的返回值一定是字符类型 .-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-. ...

  6. iPhone截长图的方法

    iPhone手机暂没有长图截取功能,所以我们只能通过别的方式进行长图截取. (2020年4月10日更新) ios13目前可以截长图了,不过只能在Safari中进行长图截取,而且存储形式为pdf格式,下 ...

  7. python爬虫实践——爬取“梨视频”

    一.爬虫的基本过程: 1.发送请求(请求库:request,selenium) 2.获取响应数据()服务器返回 3.解析并提取数据(解析库:re,BeautifulSoup,Xpath) 4.保存数据 ...

  8. 常见的HTTP返回状态值

    200 (成功) 服务器已成功处理了请求. 通常,这表示服务器提供了请求的网页. 301 (永久移动) 请求的网页已永久移动到新位置. 服务器返回此响应(对 GET 或 HEAD 请求的响应)时,会自 ...

  9. 人车识别实验丨华为ModelArts VS 百度Easy DL硬核体验

    摘要:想了解时下流行的自动驾驶相关AI模型吗?接下来就用华为云的ModelArts和百度的Easy DL带你体验一下AI平台是怎么进行模型训练的. 华为ModelArts自动学习 VS 百度Easy ...

  10. Mac Sourcetree克隆项目提示无效的url

    之前用SoucreTree拉去过另一个账号的git项目,今天创建了一个新的码云账号,克隆里面的项目是一直报错误 > 错误如下: > 原因以及解决方案: