关闭

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

标签: androidlayout_weightAndroid我的Android进阶之旅
4626人阅读 评论(16) 收藏 举报
分类:


最近碰到一个面试题,按照下图,由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

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


2
0
查看评论

我的Android进阶之旅------>经典的大牛博客推荐(排名不分先后)!!

今天看到一篇文章,收藏了很多大牛的博客,在这里分享一下(转载于:http://blog.csdn.net/wujxiaoz/article/details/8237096) Android中文Wiki AndroidStudio-NDK开发-移动开发团队谦虚的天下 - 博客园gundumw100博...
  • qq446282412
  • qq446282412
  • 2013-09-07 23:18
  • 30628

我的Android进阶之旅------>Android中Drawable分类汇总详解

Android把可绘制的对象抽象为Drawable,不同的图形图像资源就代表着不同的drawable类型。Android FrameWork提供了一些具体的Drawable实现,通常在代码中都不会直接接触Drawable的实现类。         在实...
  • qq446282412
  • qq446282412
  • 2013-04-14 11:30
  • 10130

【我的Android进阶之旅】Android插件化开发学习资料

1、目前开源的插件开发框架大致有哪些?1、 任玉刚 的 dynamic-load-apk Github 地址:https://github.com/singwhatiwanna/dynamic-load-apk2、mmyydd 的 Direct-Load-apk Github 地址:ht...
  • qq446282412
  • qq446282412
  • 2016-10-07 17:29
  • 1783

Android 对Layout_weight属性完全解析以及使用ListView来实现表格

今天主要说的是对Layout_weight属性的完全解析,以及利用Layout_weight这个属性使用ListView来实现表格的效果,我们都知道Android里面专门有一个TableLayout来实现表格的,说实话,我平常开发中用TableLayout还是比较少的,几乎没有用到,我们完全可以用L...
  • xiaanming
  • xiaanming
  • 2013-10-31 22:40
  • 33037

安卓开发技巧一:深入理解Android布局中Layout_weight的属性

今天开始将要为大家介绍一些安卓开发过程将要用到的一些技巧,这些技巧全部来自网络搜集,或者自己在企业做项目的时候总结出来的,利用这些技巧将会对我们开发带来非常方便的便捷性。 先来记录一下这一段时间的技巧目录,方便大家以后方便查阅(大概有不到三十种的技巧总结,大概每周分享两个技巧,笔者将尽可能写的详细,...
  • u011131296
  • u011131296
  • 2014-12-08 13:58
  • 1733

android:layout_weight 属性的工作原理

android:layout_weight属性 字母上的意思是权重,这常常让人误解为整个空间的划分权重之比。但其实它指的仅仅是剩余空间划分的权重(比如剩余宽度、剩余高度)。而所谓的剩余空间当然就是指的那些没有组件占用的空间了,相当于是总宽度/总高度  -  所有组件的宽...
  • m0_37222746
  • m0_37222746
  • 2017-01-13 11:03
  • 309

我的shiro之旅: 一 shiro简介

一 什么是shiro Shiro是一个强大易用的Java安全框架,提供了认证、授权、加密和会话管理功能,可为任何应用提供安全保障. 二 shiro的几个特性 易于使用 - 易用性是这个项目的最终目标。应用安全有可能会非常让人糊涂,令人沮丧,并被认为是“必要之恶”。若是能让它简化到新...
  • LHacker
  • LHacker
  • 2013-08-28 13:54
  • 3520

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

版权声明:本文为【欧阳鹏】原创文章,欢迎转载,转载请注明出处! 【http://blog.csdn.net/ouyang_peng/article/details/50757149】 关于android:layout_weight属性的详细解析效果一图1 上面的效果图中三个文本框的宽...
  • qq446282412
  • qq446282412
  • 2016-02-27 21:47
  • 3249

Android 面试题总结之Android 进阶(一)

Android 面试题总结之Android 进阶(一) 在前几篇文章中都是讲的基础,大家应该会觉得非常熟悉,但往往我们可能对于基础某些细节认识不够彻底或贯穿不全,我一直认为基础都是比较难的,那么本章节终于到进阶啦,主要讲的是View 的相关知识,在前面《Android 面试题总结之Android...
  • vfush
  • vfush
  • 2016-06-08 16:26
  • 15185

日积月累:android:layout_weight属性详解

在开发的过程中,为了布局更好的适配各种各样的屏幕,会经常使用android:layout_weight属性,按比例分配屏幕的空间。在很多资料和书籍中解释说,系统根据layout_weight比例分配占据空间的大小。但是这个解释在实际开发过程中,往往给我们带来许多困惑。    ...
  • p106786860
  • p106786860
  • 2013-08-23 09:02
  • 2983
    个人资料
    • 访问:2175620次
    • 积分:23505
    • 等级:
    • 排名:第350名
    • 原创:371篇
    • 转载:110篇
    • 译文:0篇
    • 评论:983条
    感谢您为博客进行打赏
      支付宝&微信支付二维码
      支付宝&微信支付
    站长统计
    友情链接
    博客专栏
    最新评论