• 布局权重

    线性布局支持给个别的子视图设定权重,通过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. 应用程序无法正常启动0xc000007b解决

    可能原因: 1.电脑没有安装DirectX9或者DirectX 9.0 组件损坏; 2.电脑没有安装Microsoft Visual C++ 3.电脑上没有安装.net 解决方案: 1/2.下载Dir ...

  2. BSTR

    BSTR A BSTR (Basic string or binary string) is a string data type that is used by COM, Automation, a ...

  3. [Javascript] Funciton Expression

    //This will load the code into the memory no matter //you call it or not function diffOfSquares(a,b) ...

  4. bash參考手冊之六(Bash特性)

    6 Bash 特性 这部分描写叙述Bash独有的特性. *  调用Bash : Bash能够接受的命令行选项. *  Bash启动文件 : Bash何时及怎样运行脚本. *  交互Shell : 什么 ...

  5. oracle client字符集设置 乱码问题

    程序员经常要连接数据库   下面 就说一下 oracle数据库 客户端与服务器端 字符集一致性的问题   这可以解决中文乱码,其他字符乱码问题   主要是指在sqlplus中,其他类似toad/pls ...

  6. mac 连接windows 共享内容

    mac 连接windows 共享内容 一:场景 在win7上下载了一个5G左右的系统文件,想弄到mac上,本打算用使用U盘,把文件从win7copy到mac电脑上: 可是U盘的分区是fat的,大于4G ...

  7. MySQL Cluster管理节点配置文件-数据节点4G内存

    自己测试机器上搭建使用,大家可以参考一下 [NDBD DEFAULT] #TotalSendBufferMemory = 256M NoOfReplicas=2 DataMemory=2500M In ...

  8. JDBC一(web基础学习笔记七)

    一.JDBC Java数据库的连接技术(Java DataBase Connectivity),能实现Java程序以各种数据库的访问 由一组使用Java语言编写的类和接口(JDBC API)组成,它j ...

  9. POSIX 线程详解

    一种支持内存共享的简捷工具 POSIX(可移植操作系统接口)线程是提高代码响应和性能的有力手段.在本系列中,Daniel Robbins 向您精确地展示在编程中如何使用线程.其中还涉及大量幕后细节,读 ...

  10. 关于SimHash去重原理的理解(能力工场小马哥)

    阅读目录 1. SimHash与传统hash函数的区别 2. SimHash算法思想 3. SimHash流程实现 4. SimHash签名距离计算 5. SimHash存储和索引 6. SimHas ...