• 布局权重

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

    未使用权重前效果图:

    俩个线性布局组件,代码如下:

    01.<?xml version="1.0" encoding="utf-8"?>
    02.<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    03.android:layout_width="match_parent"
    04.android:layout_height="match_parent"
    05.android:orientation="vertical" >
    06.<ScrollView
    07.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.<LinearLayout
    14.android:layout_width="wrap_content"
    15.android:layout_height="wrap_content"
    16.android:layout_gravity="center_horizontal"
    17.android:orientation="vertical" >
    18.<ImageView
    19.android:layout_width="wrap_content"
    20.android:layout_height="wrap_content"
    21.android:layout_gravity="center_horizontal"
    22.android:src="@drawable/message_selected" />
    23.<TextView
    24.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测试文字\n
    29."
    30.android:textSize="20sp" />
    31.</LinearLayout>
    32.</ScrollView>
    33.<LinearLayout
    34.android:layout_width="wrap_content"
    35.android:layout_height="wrap_content"
    36.android:layout_gravity="center_horizontal"
    37.android:orientation="horizontal" >
    38.<Button
    39.android:id="@+id/btn1"
    40.android:layout_width="wrap_content"
    41.android:layout_height="wrap_content"
    42.android:text="嵌套Fragment" />
    43.<Button
    44.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.<?xml version="1.0" encoding="utf-8"?>
    02.<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    03.android:layout_width="match_parent"
    04.android:layout_height="match_parent"
    05.android:orientation="vertical" >
    06.<ScrollView
    07.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.<LinearLayout
    14.android:layout_width="wrap_content"
    15.android:layout_height="wrap_content"
    16.android:layout_gravity="center_horizontal"
    17.android:orientation="vertical" >
    18.<ImageView
    19.android:layout_width="wrap_content"
    20.android:layout_height="wrap_content"
    21.android:layout_gravity="center_horizontal"
    22.android:src="@drawable/message_selected" />
    23.<TextView
    24.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测试文字\n
    29."
    30.android:textSize="20sp" />
    31.</LinearLayout>
    32.</ScrollView>
    33.<LinearLayout
    34.android:layout_width="wrap_content"
    35.android:layout_height="wrap_content"
    36.android:layout_gravity="center_horizontal"
    37.android:orientation="horizontal" >
    38.<Button
    39.android:id="@+id/btn1"
    40.android:layout_width="wrap_content"
    41.android:layout_height="wrap_content"
    42.android:text="嵌套Fragment" />
    43.<Button
    44.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开发之线性布局详解(布局权重)的更多相关文章

  1. Android开发 ExpandableListView 可折叠列表详解

    前言 在需要实现一个List的item需要包含列表的时候,我们就可以选择ExpandableListView. 其实这个View的原始设计还是ListView的那套.就是增加2层的ListView而已 ...

  2. Android开发:程序目录结构详解

    HelloWorld程序的目录结构概述 我们可以在文件夹中看到,HelloWorld程序的目录主要包括:src文件夹.gen文件夹.Android文件夹.assets.res文件夹. AndroidM ...

  3. Android开发——事件分发机制详解

    0. 前言   转载请注明出处:http://blog.csdn.net/seu_calvin/article/details/52566965 深入学习事件分发机制,是为了解决在Android开发中 ...

  4. Android开发之位置定位详解与实例解析(GPS定位、Google网络定位,BaiduLBS(SDK)定位)

    在android开发中地图和定位是很多软件不可或缺的内容,这些特色功能也给人们带来了很多方便.定位一般分为三种发方案:即GPS定位.Google网络定位以及基站定位 最简单的手机定位方式当然是通过GP ...

  5. Android 开发 MaterialDialog框架的详解

    前言 开始之前还是需要废话一下,因为有一些坑需要告知.首先MaterialDialog在GitHub上作者已经转型使用100% Kotlin语言编写,虽然可以在Java里调用Kotlin使用.但是个人 ...

  6. android开发之自定义View 详解 资料整理 小冰原创整理,原创作品。

    2019独角兽企业重金招聘Python工程师标准>>> /** * 作者:David Zheng on 2015/11/7 15:38 * * 网站:http://www.93sec ...

  7. android 开发 View _5_ Paint详解

    转载:http://blog.csdn.net/abcdef314159 //Paint的setStyle,Style共有3种 setStyle(Style style) Paint.Style.FI ...

  8. android开发之动画的详解 整理资料 Android开发程序小冰整理

    /** * 作者:David Zheng on 2015/11/7 15:38 * *  网站:http://www.93sec.cc * *  微博:http://weibo.com/mcxiaob ...

  9. Android 开发 存储目录的详解

    简介 Android设备,有3个地方的文件存储位置,他们分别是: 内部存储空间(用户无法浏览到此目录) 外部存储空间(就是手机自身的文件管理目录,用户可以浏览) SD卡的存储空间(需要插入T卡) Sh ...

  10. Android开发——HandlerThread以及IntentService详解

    .HandlerThread Android API提供了HandlerThread来创建线程.官网的解释是: //Handy class for starting a new thread that ...

随机推荐

  1. SVN jsvnadmin 安装与基本使用

    1. jsvnadmin  介绍 https://code.google.com/p/jsvnadmin/ Svn Admin是一个Java开发的管理Svn服务器的项目用户的web应用.安装好Svn服 ...

  2. Oracle中的数值处理方法

    求绝对值函数 ) from dual; 求平方根函数 ) from dual; 求幂函数 ,3) from dual; 求余弦三角函数 select cos(3.14159) from dual; 求 ...

  3. 【架构】SpringCloud JHipster -微服务相关资料

    SpringCloud-微服务相关资料 基于Spring Boot和Spring Cloud实现微服务架构学习(四)-Spring Cloud总结 - zeb_perfect的专栏 - 博客频道 - ...

  4. Asp.net 恢复页面内用户控件内的控件ClientID

    众所周知在Asp.net中如果一个页面添加了一个用户控件(或母版页),那么用户控件内的控件的   ClientID号会被自动添加页面中用户控件的ClientID 即页面中的控件内的控件ClientID ...

  5. 如何将数据转换libsvm格式文件

    原文:http://blog.sina.com.cn/s/blog_5c2f929b0100qse8.html 有三种工具可用1.网上有一个xls文FormatDataLibsvm.xls具有宏命令, ...

  6. 在Hadoop上运行基于RMM中文分词算法的MapReduce程序

    原文:http://xiaoxia.org/2011/12/18/map-reduce-program-of-rmm-word-count-on-hadoop/ 在Hadoop上运行基于RMM中文分词 ...

  7. 【Nodejs】理想论坛帖子爬虫1.01

    用Nodejs把Python实现过的理想论坛爬虫又实现了一遍,但是怎么判断所有回调函数都结束没有好办法,目前的spiderCount==spiderFinished判断法在多页情况下还是会提前中止. ...

  8. VM虚拟机安装之后出现无法自动登录到桌面以及__vmware_user__怎么办

    1 运行control userpasswords2 打开用户账户对话框,点击高级选项中的"高级"按钮 2 右击" __vmware_user__"这个账户,选 ...

  9. MySQL查询不区分大小写的sql写法

    MySQL查询不区分大小写的sql写法 mysql查询默认是不区分大小写的 如: select * from some_table where str=‘abc'; select * from som ...

  10. 微信小程序 - 生命周期

    生命周期 1.小程序注册完成后,加载页面,触发onLoad方法.(切记,onShow和onLoad的区别,onShow是每当进入这个页面时就会触发,而onload是载入进来时才触发) 2.页面载入后触 ...