我的Android进阶之旅------>关于android:layout_weight属性的一个面试题

原创 2013年10月27日 20:26:45


最近碰到一个面试题,按照下图,由Button和EditText组成的界面下厨布局代码,解决这题目需要使用android:layout_weight的知识。


首先分析上图所示的界面可以看成一下3个部分。

  1. 界面顶端的3个按钮。
  2. 界面中间的EditText。
  3. 界面底端的1个按钮。
  • 其中第1部分和第3部分分别在界面顶端和底端显示,而第2部分的EditText充满了剩余的空间。
  • 如果想让一个组件充满整个屏幕,需要将android:layout_width和android:layout_height都设成fill_parent或者match_parent。我们可以将第1部分看成一个整体,android:layout_height的值设成wrap_content,第3部分的android:layout_height的值也设成wrap_content,那么第2部分的<EditText>标签的android:layout_weight属性值要设为一个大于0的浮点数(例如1)。这样EditText就会充满整个剩余空间。否则EditText会占用第3部分的Button空间,这样界面底端的按钮就会显示不出来。
  • 现在来看第1部分的3个按钮。这3个按钮分钟占了水平宽度的1/5、3/5、1/5。这种按比例摆放的组件一般都需要设置标签的android:layout_weight属性。按重要程度可将3个Button的android:layout_weight属性从左到右依次设为2、1、2。
具体的实现布局代码如下所示:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <!-- 顶端的3个按钮布局 -->
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <!-- 该按钮占1/5宽度 -->
        <Button
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="2"
            android:text="1/5" />
        
        <!-- 该按钮占3/5宽度 -->
        <Button
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="3/5" />
        
        <!-- 该按钮占1/5宽度 -->
        <Button
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="2"
            android:text="1/5" />
    </LinearLayout>
    
    <!-- 充满剩余空间的EditText组件 -->
    <EditText
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:text="EditText(充满上方和下方按钮之间的整个屏幕\n博客地址:http://blog.csdn.net/ouyang_peng)" />
	
    <!-- 屏幕底端的按钮 -->
    <Button android:layout_width="match_parent"
        android:layout_height="wrap_content" android:text="按钮"/>
</LinearLayout>


   可以通过另外一篇实例文章来了解android:layout_weight的属性,链接如下:

《我的Android进阶之旅------>关于android:layout_weight属性的详细解析》

(地址:http://blog.csdn.net/ouyang_peng/article/details/50757149)

《我的Android进阶之旅------>Android利用温度传感器实现带动画效果的电子温度计》

(地址为:http://blog.csdn.net/ouyang_peng/article/details/48790289)



    关于android:layout_weight的更多介绍可以参考一下资源:
  1. http://www.cnblogs.com/angeldevil/archive/2012/04/08/2437747.html
  2. http://blog.csdn.net/softmanfly/article/details/7636510
  3. http://developer.android.com/guide/topics/ui/layout/linear.html#Weight
  4. http://www.cnblogs.com/draem0507/archive/2013/05/11/3073508.html
  5. Android 对Layout_weight属性完全解析以及使用ListView来实现表格

==================================================================================================

  作者:欧阳鹏  欢迎转载,与人分享是进步的源泉!

  转载请保留原文地址http://blog.csdn.net/ouyang_peng

==================================================================================================


版权声明:本文为【欧阳鹏】原创文章,欢迎转载,转载请注明出处! 【http://blog.csdn.net/ouyang_peng】

使用surfaceview实现直播中的点赞效果

直播功能现在已经是一个很热门的功能了,很多应用都会涉及到直播模块,比如 花椒 NOW 还有辣妈帮。。等,最近因为项目需要也加入了直播功能。直播中有一个点赞的效果 ,今天我也按照自己的思路实现了一个...

仿即刻APP点赞桃心的效果

仿即刻APP点赞桃心的效果 2016-12-5更新 修改测量逻辑添加了对齐方式添加了一个评论图形的GraphAdapter修改了已知BUG 先看效果图 likeview.gif ...

LinearLayout中的android:layout_weight属性的设置和使用

第一种设置: 这个东西很常用,也会用,但是基本上只用了一种方法,如下: android:id="@+id/textView1" android:layout_width="0dip" and...
  • wudkj
  • wudkj
  • 2015年10月02日 21:36
  • 330

android开发中LinearLayout中的Layout_weight属性的理解

我现在是一个大三的学生,以下仅供刚开始学习的人参考,是我对权重理解的一个过程。如有大神查看,留下建议也是极好极好的! layout_weight这个属性,我们在LinearLayout中经常会用到。用...

android:layout_weight属性的工作原理

android:layout_weight属性是控制LinearLayout如何进行子组件的布置安排。常称为“权重”。在实际开发中比较常用,但是很多开发者可能并不知道weightlayout的工作原理...
  • Todo_
  • Todo_
  • 2016年03月23日 18:40
  • 604

对android的layout_weight属性的理解

今天官网上看见了一个对layout_weight的评论(在下面), 还看了这篇博客http://lovezhou.iteye.com/blog/827881 终于基本理解这个属性怎么用了。 个人...
  • ureygo
  • ureygo
  • 2011年08月10日 16:45
  • 5156

Android布局中的layout_weight和weightSum属性的详解及使用

由于Android设备的尺寸大小不一,种类繁多,当我们在开发应用的时候就要考虑屏幕的适配型了,尽可能让我们的应用适用于主流机型的尺寸,这样我们的应用不会因为尺寸不同而不美观,解决屏幕适配问题的方法有很...

Android layout_weight属性的工作原理

这篇文档主要讲一下layout_weight。给组件添加这个属性时,有一点需要注意,在Android studio中,Design中显示的布局会和手机上运行时显示的不一样,不要被Design蒙骗。 先...

Android:layout_weight属性的两种用法

weight属性用于设置控件长和宽所占的比例 首先看一个例子: Example.1
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:我的Android进阶之旅------>关于android:layout_weight属性的一个面试题
举报原因:
原因补充:

(最多只允许输入30个字)