解决EditText不能撑满全屏的问题及EditText你应该知道的属性

一般我们要实现去下图一的效果很简单:

两个EditText就搞定

效果图一:

但是我们想让第二个EditText撑满剩余空间怎么做?如效果图二

效果图二:

解决:

使用了ScrollView嵌套LinearLayout,将ScrollView中android:fillViewport设置为true。

分析:

当ScrollView里的元素想填满ScrollView时,使用"fill_parent"是不管用的,必需为ScrollView设置:android:fillViewport="true"。

当ScrollView没有fillVeewport=“true”时,
里面的元素(比如LinearLayout)会按照wrap_content来计算(不论它是否设了"fill_parent"),而如果
LinearLayout的元素设置了fill_parent,那么也是不管用的,因为LinearLayout依赖里面的元素,而里面的元素又依赖
LinearLayout,这样自相矛盾.所以里面元素设置了fill_parent,也会当做wrap_content来计算.

来源: http://blog.sina.com.cn/s/blog_6cf2ea6a0102v61f.html

代码如下,注释了常用的EditText属性:

  1. <ScrollView
  2. android:layout_width="match_parent"
  3. android:layout_height="0dp"
  4. android:layout_weight="1"
  5. android:fillViewport="true">    //*******************关键处********
  6. <LinearLayout
  7. android:layout_width="match_parent"
  8. android:layout_height="match_parent"
  9. android:orientation="vertical">
  10. <EditText
  11. android:id="@+id/edit_title"
  12. android:layout_width="match_parent"
  13. android:layout_height="wrap_content"
  14. android:layout_gravity="center|left"
  15. android:layout_marginLeft="16dp"
  16. android:layout_marginRight="16dp"
  17. android:background="@null"    //控件背景,这里没有,指透明
  18. android:ellipsize="end"    //自动隐藏尾部溢出数据,一般用于文字内容过长一行无法全部显示时
  19. android:hint="添加标题"
  20. android:paddingBottom="10dp"
  21. android:paddingTop="10dp"
  22. android:singleLine="true"    //强制输入的内容在单行
  23. android:textColorHint="#bfbfbf" />
  24. <LinearLayout
  25. android:layout_width="match_parent"
  26. android:layout_height="2dp"
  27. android:layout_marginLeft="10dp"
  28. android:layout_marginRight="10dp"
  29. android:background="@drawable/dotted_line"
  30. android:layerType="software" />
  31. <RelativeLayout
  32. android:layout_width="match_parent"
  33. android:layout_height="0dp"
  34. android:layout_weight="1">
  35. <EditText
  36. android:id="@+id/edit_content"
  37. android:layout_width="match_parent"
  38. android:layout_height="match_parent"
  39. android:layout_marginLeft="16dp"
  40. android:layout_marginRight="16dp"
  41. android:layout_marginTop="16dp"
  42. android:gravity="left|top"     //输入时光标在左上角
  43. android:hint="内容"
  44. android:lineSpacingExtra="4.6dp"    //设置行间距
  45. android:scrollbars="vertical"    // 设置滚动条显示
  46. android:textColorHint="#bfbfbf"
  47. android:textSize="16sp" />
  48. </RelativeLayout>
  49. <!--
  50. android:background="@null"    //去掉EditView的边框
  51. android:inputType="textMultiLine"    //可以显示多行
  52. android:minLines="6"    // 设置文本的最小行数
  53. -->
  54. </LinearLayout>
  55. </ScrollView>

来自为知笔记(Wiz)

时间: 2024-10-13 16:00:34

解决EditText不能撑满全屏的问题及EditText你应该知道的属性的相关文章

ScrollView属性fillViewport解决android布局不能撑满全屏的问题

转:http://blog.sina.com.cn/s/blog_6cf2ea6a0102v61f.html 开发项目中遇到一个问题,布局高度在某些国产酷派小屏幕手机上高度不够全部显示,于是使用了ScrollView嵌套LinearLayout,但问题又出现了,在大屏幕手机如三星note3手机上下面会留白,问题的解决办法是在第一层LinearLayout里面嵌套多个LinearLayout,最重要的是将ScrollView中android:fillViewport设置为true. 当Scroll

ScrollView嵌套LinearLayout布局不能撑满全屏的问题

当ScrollView里的元素想填满ScrollView时,使用"fill_parent"或者"match_parent"是不管用的,必需为ScrollView设置:android:fillViewport="true". 当ScrollView没有fillVeewport="true"时, 里面的元素(比如LinearLayout)会按照wrap_content来计算(不论它是否设了"fill_parent&quo

关于Android对话框宽度无法铺满全屏的问题

之前做自定义对话框需要宽度铺满全屏时,基本是这样操作的. AlertDialog dialog = new AlertDialog.Builder(context).create();         dialog.show();         Window window = dialog.getWindow();         WindowManager.LayoutParams lp = window.getAttributes();         lp.width = WindowM

怎样使遮罩层铺满全屏,尝试过,成功

在一个html页面中,只有一个div,想是div充满全屏,常规的想法是设置高度宽度为100% ,代码如下:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <body bgcolor="red"> <div id="bg" style="width:100%;height:100%;"> &

解决微信浏览器内video全屏问题

前端离职,让我写个视频播放页面,木办法只有我来搞了. 默认用h5的 video标签 测试时候发现微信浏览器内访问video自动全屏播放. 搜了下 webkit-playsinline="true" playsinline="true" x-webkit-airplay="true" x5-video-player-type="h5" x5-video-player-fullscreen="true" x5-

怎么样imageview实现铺满全屏

<ImageView android:layout_width="match_parent" android:layout_height="match_parent" android:scaleType="fitXY"//设置此属性就可以了,虽然显示了满屏,但是会破坏资源文件的比例 android:src="@drawable/abc" />

转 Div+Css控制背景图片水平垂直居中显示 背景铺满全屏

在Web开发中我们经常要碰到这样的问题:在为一个页面设置背景图片之后往往希望图片能够在分辨率比较大的情况下水平垂直都居中显示.通常水平居中显示在Css中是很容易做到的,而垂直居中就需要使用一些Css的技巧: 1. 首先为了能使得网站能够根据浏览器大小自适应,我们需要将页面的body元素height值设为100%,而在这之前,我们需要将xhtml验证从网站头删除.<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&quo

CSS(十三).高度如何铺满全屏

该需求来源一次面试题. IE6不认识!important声明,IE7.IE8.Firefox.Chrome等浏览器认识:而在怪异模式中,IE6/7/8都不认识!important声明,这只是区别的一种,还有很多其它区别.所以,要想写出跨浏览器的CSS,你必须采用标准模式.好像太绝对了,呵呵.好吧,要想写出跨浏览器CSS,你最好采用标准模式. 目前能够找到的有两种方案: A.利用css百分比实现 B.利用css vh 单位实现(直接设置即可,非常简单快捷) vh,是css中的相对长度单位,表示相对

容器铺满全屏

.container { position: absolute; top: 0; bottom: 0; left: 0; right: 0; overflow: hidden; }