Android 布局 中实现适应屏幕大小及组件滚动
要实现如图的布局:
这是在eclipse可视化窗口中的截图,但实际运行在Android设备上可能出现的问题有:
(1):当编辑图1中的最后一个EditText时,输入法的编辑界面会把底部的Button顶上去,遮挡住了最后一个EditText;
(2):图2中的控件太多,以至于无法一屏全部显示,导致底部的Button被挤下去,又无法滚动控件,导致无法操作Button;
解决方案:
以下为布局文件代码:
图 1:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical" > <ScrollView
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:layout_above="@+id/linearLayout1"
android:fillViewport="true" > <TableLayout
android:id="@+id/table"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:stretchColumns="1" > <TableRow> <TextView
android:layout_width="60dp"
android:layout_height="wrap_content"
android:text="@string/product_name" /> <EditText
android:layout_height="wrap_content"
android:hint="@string/product_name" >
</EditText>
</TableRow> <TableRow> <TextView
android:layout_width="60dp"
android:layout_height="wrap_content"
android:text="@string/product_id" /> <EditText
android:layout_height="wrap_content"
android:hint="@string/product_id" >
</EditText>
</TableRow> <TableRow> <TextView
android:layout_width="60dp"
android:layout_height="wrap_content"
android:text="@string/raise_company" /> <EditText
android:layout_height="wrap_content"
android:hint="@string/raise_company" >
</EditText>
</TableRow> <TableRow> <TextView
android:layout_width="80dp"
android:layout_height="wrap_content"
android:text="@string/about_info" /> <EditText
android:layout_height="wrap_content"
android:layout_weight="2"
android:hint="@string/about_quality_website" >
</EditText>
</TableRow>
</TableLayout>
</ScrollView> <LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:paddingBottom="0dp" > <Button
android:layout_width="70dp"
android:layout_height="wrap_content"
android:layout_weight="2"
android:text="@string/edit" /> <Button
android:layout_width="70dp"
android:layout_height="wrap_content"
android:layout_weight="2"
android:text="@string/refer" >
</Button>
</LinearLayout> </RelativeLayout>
图 2:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/view"
android:layout_width="fill_parent"
android:layout_height="fill_parent" > <RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical" > <ScrollView
android:id="@+id/view1"
android:layout_width="fill_parent"
android:layout_height="fill_parent" > <TableLayout
android:id="@+id/table"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:stretchColumns="1" > <TableRow> <TextView
android:layout_width="60dp"
android:layout_height="wrap_content"
android:text="@string/product_name" /> <EditText
android:layout_height="wrap_content"
android:hint="@string/product_name" >
</EditText>
</TableRow> <TableRow> <TextView
android:layout_width="60dp"
android:layout_height="wrap_content"
android:text="@string/product_id" /> <EditText
android:layout_height="wrap_content"
android:hint="@string/product_id" >
</EditText>
</TableRow> <TableRow> <TextView
android:layout_width="60dp"
android:layout_height="wrap_content"
android:text="@string/current_data" /> <EditText
android:layout_height="wrap_content"
android:hint="@string/current_data" >
</EditText>
</TableRow> <TableRow> <TextView
android:layout_width="60dp"
android:layout_height="wrap_content"
android:text="@string/raise_company" /> <EditText
android:layout_height="wrap_content"
android:hint="@string/raise_company" >
</EditText>
</TableRow> <TableRow> <TextView
android:layout_width="60dp"
android:layout_height="wrap_content"
android:text="@string/raise_man" /> <EditText
android:layout_height="wrap_content"
android:hint="@string/raise_man" >
</EditText>
</TableRow> <TableRow> <TextView
android:layout_width="60dp"
android:layout_height="wrap_content"
android:text="@string/feed_name" /> <EditText
android:layout_height="wrap_content"
android:hint="@string/feed_name" >
</EditText>
</TableRow> <TableRow> <TextView
android:layout_width="60dp"
android:layout_height="wrap_content"
android:text="@string/feed_element" /> <EditText
android:layout_height="wrap_content"
android:hint="@string/feed_element" >
</EditText>
</TableRow> <TableRow> <TextView
android:layout_width="60dp"
android:layout_height="wrap_content"
android:text="@string/medicine" /> <EditText
android:layout_height="wrap_content"
android:hint="@string/medicine" >
</EditText>
</TableRow> <TableRow> <TextView
android:layout_width="60dp"
android:layout_height="wrap_content"
android:text="@string/health_condition" /> <EditText
android:layout_height="wrap_content"
android:hint="@string/health_condition" >
</EditText>
</TableRow> <TableRow> <TextView
android:layout_width="60dp"
android:layout_height="wrap_content"
android:text="@string/water_quality" /> <EditText
android:layout_height="wrap_content"
android:hint="@string/water_quality" >
</EditText>
</TableRow> <TableRow> <TextView
android:layout_width="60dp"
android:layout_height="wrap_content"
android:text="@string/water_temperature" /> <EditText
android:layout_height="wrap_content"
android:hint="@string/water_temperature" >
</EditText>
</TableRow> <TableRow> <TextView
android:layout_width="60dp"
android:layout_height="wrap_content"
android:text="@string/record" /> <EditText
android:layout_height="wrap_content"
android:hint="@string/record" >
</EditText>
</TableRow>
</TableLayout>
</ScrollView> <LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/view1" > <Button
android:layout_width="70dp"
android:layout_height="wrap_content"
android:layout_weight="2"
android:text="@string/edit" /> <Button
android:layout_width="70dp"
android:layout_height="wrap_content"
android:layout_weight="2"
android:text="@string/refer" >
</Button>
</LinearLayout>
</RelativeLayout> </ScrollView>
需要说明的是:图一结构为:
图二结构为:
图二没有遮挡的问题,所以没有去修改它
结束语:关于Android中布局文件的滚动和控件遮挡问题已经描述和解决,作为一篇记录学习过程的文章,也希望能够帮助别人一起学习。
附上的代码,如果你喜欢,欢迎拿去,顺便,如果你把它完善的根据完美漂亮,也希望你反馈到这里 ^_^
Android 布局 中实现适应屏幕大小及组件滚动的更多相关文章
- 在Eclipse Android中设置模拟器屏幕大小
在Eclipse Android中设置模拟器屏幕大小是本文要介绍的内容,主要是来了解并学习Eclipse Android中模拟器的设置,具体关于Eclipse Android内容的详解来看本文. 方法 ...
- Android布局中的空格以及占一个汉字宽度的空格的实现
在Android布局中进行使用到空格,以便实现文字的对齐.那么在Android中如何表示一个空格呢? 空格: 窄空格: 一个汉字宽度的空格: [用两个空格( )占一个汉字的宽度时,两个空格比 ...
- Android布局中的空格以及占一个汉字宽度的空格,实现不同汉字字数对齐
前言 在Android布局中进行使用到空格,以便实现文字的对齐.那么在Android中如何表示一个空格呢? 空格: (普通的英文半角空格但不换行) 窄空格: (中文全角空格 (一个中文宽度)) ...
- android布局中使用include及需注意点
在android布局中,使用include,将另一个xml文件引入,可作为布局的一部分,但在使用include时,需注意以下问题: 一.使用include引入 如现有标题栏布局block_header ...
- Android布局中的layout_weight和weightSum属性的详解及使用
由于Android设备的尺寸大小不一,种类繁多,当我们在开发应用的时候就要考虑屏幕的适配型了,尽可能让我们的应用适用于主流机型的尺寸,这样我们的应用不会因为尺寸不同而不美观,解决屏幕适配问题的方法有很 ...
- Android针对不同的手机屏幕大小设计图片资源与编码
注:本文转载于:http://blog.csdn.net/welovesunflower/article/details/7930248 一些术语 Screen Size 屏幕尺寸: 实际的物理尺寸, ...
- 【转】在Android布局中使用include和merge标签
内容转自:http://fengweipeng1208.blog.163.com/blog/static/21277318020138229754135/ 在我们开发android布局时,经常会有很多 ...
- Android布局中涉及的一些属性
Android:gravity属性 线性布局常见的就是利用LinearLayout进行布局,其中有个比较重要的属性就是android:gravity,在官方文档中是这么描述这个属性的:指定一个元素怎么 ...
- android 布局中 layout_gravity、gravity、orientation、layout_weight
线性布局中,有 4 个及其重要的参数,直接决定元素的布局和位置,这四个参数是 android:layout_gravity ( 是本元素相对于父元素的重力方向 ) android:gravity (是 ...
随机推荐
- [Javascript] Function scope
We have code like: var numbers = [1,2,3]; for(var i in numbers){ setTimeout(function(){console.log(n ...
- (ios开发学习笔记一)ios项目文件结构
转自:http://www.cnblogs.com/macroxu-1982/archive/2012/07/31/2616389.html 下面是单个窗体项目例子,我们从这个项目开始,说明ios项目 ...
- Jetty学习(一)
最近做一个项目,需要动态添加与移除servlet容器的http端口,并且启动都是嵌入式的.因此,果断选择了Jetty. 在模块化方面,Jetty是做的相当给力的一个容器,对 ...
- c#线程问题(2)
表示要在新上下文中调用的方法.public delegate void ContextCallback(Object state) 参数 state 类型: System. Object一个对象,包含 ...
- Telnet、SSH和VNC
以下内容出自<Red Hat Linux服务器配置与应用>第17章:Telnet.SSH和VNC服务的配置与应用.俗话说:“前人栽树,后人乘凉”.我懒得再照书本打一遍了,就从这里拷贝了一份 ...
- PHP: 深入pack/unpack 字节序
http://my.oschina.net/goal/blog/195749?p=1 目录[-] 写在前面的话 什么是字节序 MSB和LSB 大端序 小端序 网络字节序 主机字节序 总结 pack/u ...
- DebugView图文教程
Debug信息捕获软件. 可以很方便的捕获系统实时输出的Debug信息,并保存为日志文件.可以远程捕获服务器上的Debug信息. 比较方便开发人员在系统发布前监控一些系统流程和异常,甚至在系统不大的情 ...
- 关于JAVA那点事---i++和++i
对i++和++i 一直有点晕,今天专门抽空来研究相关的知识. 先从简单的说起. 有如下程序: int i=0; i=i++; system.out.print(i); 一眼望去这个结果显而易见是1,但 ...
- 显示创建一个表的SQL语句
显示创建数据库中包的语句,从而可以方便的对表的结构进行修改和复制(当然还有其他的方式) 显示表结构: 显示创建表语句: show create table tablename;
- pre 随变化的样式
<pre style="white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;white-sp ...