Android开发之线性布局详解(布局权重)
布局权重
线性布局支持给个别的子视图设定权重,通过android:layout_weight属性。就一个视图在屏幕上占多大的空间而言,这个属性给其设 定了一个重要的值。一个大的权重值,允许它扩大到填充父视图中的任何剩余空间。子视图可以指定一个权重值,然后视图组剩余的其他的空间将会分配给其声明权 重的子视图。默认的权重是0;
未使用权重前效果图:

俩个线性布局组件,代码如下:
01.<?xmlversion="1.0"encoding="utf-8"?>03.android:layout_width="match_parent"04.android:layout_height="match_parent"05.android:orientation="vertical">06.<ScrollView07.android:id="@+id/scrollView_content"08.android:layout_width="match_parent"09.android:layout_height="wrap_content"10.android:layout_gravity="center_horizontal"11.12.android:orientation="vertical">13.<LinearLayout14.android:layout_width="wrap_content"15.android:layout_height="wrap_content"16.android:layout_gravity="center_horizontal"17.android:orientation="vertical">18.<ImageView19.android:layout_width="wrap_content"20.android:layout_height="wrap_content"21.android:layout_gravity="center_horizontal"22.android:src="@drawable/message_selected"/>23.<TextView24.android:layout_width="wrap_content"25.android:layout_height="wrap_content"26.android:layout_gravity="center_horizontal"27.android:padding="10dp"28.android:text="测试文字\n测试文字\n测试文字\n测试文字\n测试文字\n测试文字\n测试文字\n测试文字\n测试文字\n29."30.android:textSize="20sp"/>31.</LinearLayout>32.</ScrollView>33.<LinearLayout34.android:layout_width="wrap_content"35.android:layout_height="wrap_content"36.android:layout_gravity="center_horizontal"37.android:orientation="horizontal">38.<Button39.android:id="@+id/btn1"40.android:layout_width="wrap_content"41.android:layout_height="wrap_content"42.android:text="嵌套Fragment"/>43.<Button44.android:id="@+id/btn2"45.android:layout_width="wrap_content"46.android:layout_height="wrap_content"47.android:text="外部Fragment"/>48.</LinearLayout>49.</LinearLayout>仔细看下和想下就会发现这有个严重的问题,那就是“测试文字”行数多有,第二个LinearLayout布局被挤压或挤出显示区,如下图:

解决方法如下,在第一个LinearLayout 中加入权重android:layout_weight="1",代码如下:
01.<?xmlversion="1.0"encoding="utf-8"?>03.android:layout_width="match_parent"04.android:layout_height="match_parent"05.android:orientation="vertical">06.<ScrollView07.android:id="@+id/scrollView_content"08.android:layout_width="match_parent"09.android:layout_height="wrap_content"10.android:layout_gravity="center_horizontal"11.android:layout_weight="1"12.android:orientation="vertical">13.<LinearLayout14.android:layout_width="wrap_content"15.android:layout_height="wrap_content"16.android:layout_gravity="center_horizontal"17.android:orientation="vertical">18.<ImageView19.android:layout_width="wrap_content"20.android:layout_height="wrap_content"21.android:layout_gravity="center_horizontal"22.android:src="@drawable/message_selected"/>23.<TextView24.android:layout_width="wrap_content"25.android:layout_height="wrap_content"26.android:layout_gravity="center_horizontal"27.android:padding="10dp"28.android:text="测试文字\n测试文字\n测试文字\n测试文字\n测试文字\n测试文字\n测试文字\n测试文字\n测试文字\n29."30.android:textSize="20sp"/>31.</LinearLayout>32.</ScrollView>33.<LinearLayout34.android:layout_width="wrap_content"35.android:layout_height="wrap_content"36.android:layout_gravity="center_horizontal"37.android:orientation="horizontal">38.<Button39.android:id="@+id/btn1"40.android:layout_width="wrap_content"41.android:layout_height="wrap_content"42.android:text="嵌套Fragment"/>43.<Button44.android:id="@+id/btn2"45.android:layout_width="wrap_content"46.android:layout_height="wrap_content"47.android:text="外部Fragment"/>48.</LinearLayout>49.</LinearLayout>效果如下图

这样就算文字内容再长也不会把第二个LinearLayout 挤出显示区或挤压,权重布局原理图

Android开发之线性布局详解(布局权重)的更多相关文章
- Android开发 ExpandableListView 可折叠列表详解
前言 在需要实现一个List的item需要包含列表的时候,我们就可以选择ExpandableListView. 其实这个View的原始设计还是ListView的那套.就是增加2层的ListView而已 ...
- Android开发:程序目录结构详解
HelloWorld程序的目录结构概述 我们可以在文件夹中看到,HelloWorld程序的目录主要包括:src文件夹.gen文件夹.Android文件夹.assets.res文件夹. AndroidM ...
- Android开发——事件分发机制详解
0. 前言 转载请注明出处:http://blog.csdn.net/seu_calvin/article/details/52566965 深入学习事件分发机制,是为了解决在Android开发中 ...
- Android开发之位置定位详解与实例解析(GPS定位、Google网络定位,BaiduLBS(SDK)定位)
在android开发中地图和定位是很多软件不可或缺的内容,这些特色功能也给人们带来了很多方便.定位一般分为三种发方案:即GPS定位.Google网络定位以及基站定位 最简单的手机定位方式当然是通过GP ...
- Android 开发 MaterialDialog框架的详解
前言 开始之前还是需要废话一下,因为有一些坑需要告知.首先MaterialDialog在GitHub上作者已经转型使用100% Kotlin语言编写,虽然可以在Java里调用Kotlin使用.但是个人 ...
- android开发之自定义View 详解 资料整理 小冰原创整理,原创作品。
2019独角兽企业重金招聘Python工程师标准>>> /** * 作者:David Zheng on 2015/11/7 15:38 * * 网站:http://www.93sec ...
- android 开发 View _5_ Paint详解
转载:http://blog.csdn.net/abcdef314159 //Paint的setStyle,Style共有3种 setStyle(Style style) Paint.Style.FI ...
- android开发之动画的详解 整理资料 Android开发程序小冰整理
/** * 作者:David Zheng on 2015/11/7 15:38 * * 网站:http://www.93sec.cc * * 微博:http://weibo.com/mcxiaob ...
- Android 开发 存储目录的详解
简介 Android设备,有3个地方的文件存储位置,他们分别是: 内部存储空间(用户无法浏览到此目录) 外部存储空间(就是手机自身的文件管理目录,用户可以浏览) SD卡的存储空间(需要插入T卡) Sh ...
- Android开发——HandlerThread以及IntentService详解
.HandlerThread Android API提供了HandlerThread来创建线程.官网的解释是: //Handy class for starting a new thread that ...
随机推荐
- SQL Server Instance无法启动了, 因为TempDB所在的分区没有了, 怎么办?
我的SQL 2014的虚拟机在迁移的时候, 存放TempDB的LUN被删掉了. 在虚拟机的操作系统启动了之后, SQL Server Instance却启动不起来了. 检查Event Log, 报错. ...
- tomcat 用AXIS2发布WebService 网站的方法
Axis2+tomcat7.0 实现webService 服务端发布与客户端的调用. Aixs2开发webService的方法有很多,在此只介绍一种比较简单的实现方法. 第一步:首先要下载开发所需要的 ...
- 自己定义带三角形箭头的TextView
<?xml version="1.0" encoding="utf-8"? > <resources> <declare ...
- DFA 算法实现关键词匹配
起因: 从网页中爬去的页面.须要推断是否跟预设的关键词匹配(是否包括预设的关键词),并返回全部匹配到的关键词 . 眼下pypi 上两个实现 ahocorasick https://pypi.pytho ...
- YOURLS' API
YOURLS' API 特征 生成或获取现有的短URL,带有顺序关键字或自定义关键字获取一些关于你的链接的统计信息:点击链接,点击最少的链接,最新链接输出格式:JSON.XML或简单的原始文本Auth ...
- 【python】用正则表达式进行文字局部替换
比如有个字符串http://www.55188.com/thread-8306254-2-3.html,需要把8306254后面的2替换成其它数字,其它保持不变,该如何办呢?请看代码: import ...
- Linux下串口操作之数据拼接
串口操作中,特别以非阻塞的方式读取和发送数据,做好进程之间的同步很重要.有时我们会发现这样一个问题,在进行read操作时,一次read不能获得一个完整的数据帧,这就好比你买了一个电脑,送货的先把显示器 ...
- UIKeyboardTypeNumberPad 数字键盘添加完成按钮
一:添加通知 //数字键盘添加完成 [[NSNotificationCenterdefaultCenter] addObserver:selfselector:@selector(keyboardWi ...
- win10 切换 简体/繁体中文
- java指令备忘
javap 查看class文件用 指令码 助记符 说明 0x00 nop 什么都不做 0x01 aconst_null 将null推送至栈顶 0x02 iconst_m1 将int型-1推送至栈顶 ...