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 (是 ...
随机推荐
- Windows下codeblocks的安装与配置
最近自己正好要使用codeblocks编写C++程序,安装好却发现无法编译,如果您也遇到相似问题,可以参考本文. 如果您已安装codeblocks,想转换成中文界面,直接参考Step 2. 如果您C程 ...
- C语言第二节概述
学前提醒 其实iOS开发就是开发iPhone\iPad上的软件,而要想开发一款软件,首先要学习程序设计语言 iOS开发需要学习的主要程序设计语言有:C语言.C++.Objective-C,其中C++. ...
- Pretty Poem
Poetry is a form of literature that uses aesthetic and rhythmic qualities of language. There are man ...
- Nodejs的mysql模块学习(一)
介绍 mysql npm包 是一个nodejs的模块,由JavaScript编写 安装 npm install mysql 建立连接 var mysql = require('mysql');//引用 ...
- css笔记05:表单
1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.o ...
- Linux 同步时间
Linux里有2个时间: 硬件时间 系统时间 这2个时间不是同步的!如果有一天发现系统的时间不对了,可以分别看看这2个时间.硬件时间写在BIOS里,系统时间就是电脑显示的时间了. sudo hwclo ...
- javaEE的十三个技术规范
java 是一种非常棒的语言,健壮,跨平台运行,屏蔽了具体的平台环境的要求,也就是说只要支持java 虚拟机,就可以运行java程序. 下面,我们一起学习一下J2EE的十三种技术规范. 一.JDBC: ...
- 易维清使用技巧:CHM编辑利器
易维清源代码生成软件不但是一款专业的管理信息系统源代码生成器,其附带的编辑帮助信息功能更是CHM编辑利器.而且,免费试用版中的这个功能完全没有削减的哦,不花钱就可以帮你轻松编辑生成完美的CHM,官方下 ...
- MapReduce的手机流量统计的案例
程序:(另外一个关于单词计数的总结:http://www.cnblogs.com/DreamDrive/p/5492572.html) import java.io.IOException; impo ...
- [ImportNew]8张图理解Java
http://www.importnew.com/11725.html 1.字符串的不变性. 下面这张图展示了这段代码做了什么 String s = "abcd"; s = s.c ...