Android开发软键盘遮挡登陆按钮的完美解决方案
作者:poet 发布时间:2022-05-09 07:44:47
标签:android,软键盘,遮挡
在应用登陆页面我们需要填写用户名和密码。当填写这些信息的时候,软键盘会遮挡登陆按钮,这使得用户体验较差,所以今天就来解决这个问题
1:登陆布局界面如下
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/login_bg" >
<LinearLayout
android:id="@+id/ll_center"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<ScrollView
android:id="@+id/sl_center"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:fadingEdge="none"
android:scrollbars="none" >
<RelativeLayout
android:id="@+id/rl_center"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<LinearLayout
android:id="@+id/sms_login_ll_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="90dip"
android:orientation="horizontal" >
<ImageView
android:id="@+id/sms_login_iv_icon"
android:layout_width="70dip"
android:layout_height="70dip"
android:layout_gravity="center_vertical"
android:src="@drawable/login_top_icon" />
<ImageView
android:id="@+id/sms_login_iv_big_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginLeft="15dip"
android:src="@drawable/sms_login_icon_big" />
</LinearLayout>
<ImageView
android:id="@+id/sms_login_iv_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/sms_login_ll_title"
android:layout_centerHorizontal="true"
android:layout_marginTop="28dip"
android:background="@drawable/sms_login_icon_small" />
<RelativeLayout
android:id="@+id/sms_login_rl_input_name"
android:layout_width="fill_parent"
android:layout_height="43dip"
android:layout_below="@id/sms_login_iv_name"
android:layout_centerHorizontal="true"
android:layout_marginLeft="40dip"
android:layout_marginRight="40dip"
android:layout_marginTop="40dip"
android:background="@drawable/login_top_input" >
<ImageView
android:id="@+id/sms_login_iv_input_name_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:layout_marginLeft="10dip"
android:layout_marginRight="10dip"
android:background="@drawable/login_input_icon_user" />
<FrameLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_toRightOf="@id/sms_login_iv_input_name_icon" >
<EditText
android:id="@+id/sms_login_et_accout"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/transparent_white"
android:digits="@string/sms_login_accout_text"
android:hint="请输入账号"
android:singleLine="true"
android:text=""
android:textSize="20sp" />
</FrameLayout>
</RelativeLayout>
<RelativeLayout
android:id="@+id/sms_login_rl_input_pass"
android:layout_width="fill_parent"
android:layout_height="43dip"
android:layout_below="@id/sms_login_rl_input_name"
android:layout_centerHorizontal="true"
android:layout_marginLeft="40dip"
android:layout_marginRight="40dip"
android:background="@drawable/login_top_input" >
<ImageView
android:id="@+id/sms_login_iv_input_pass_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:layout_marginLeft="10dip"
android:layout_marginRight="10dip"
android:background="@drawable/login_input_icon_pwd" />
<FrameLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_toRightOf="@id/sms_login_iv_input_pass_icon" >
<EditText
android:id="@+id/sms_login_et_password"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/transparent_white"
android:digits="@string/sms_et_change_password_old_text"
android:hint="请输入密码"
android:inputType="textPassword"
android:singleLine="true"
android:text=""
android:textSize="20sp" />
</FrameLayout>
</RelativeLayout>
</RelativeLayout>
</ScrollView>
<Button
android:id="@+id/sms_login_bt_confirm"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/sms_login_rl_input_pass"
android:layout_centerHorizontal="true"
android:layout_marginLeft="40dip"
android:layout_marginRight="40dip"
android:layout_marginTop="16dip"
android:background="@drawable/sms_update_pass_bg_selector"
android:text="登 录"
android:textColor="@color/white"
android:textSize="20sp" />
</LinearLayout>
</RelativeLayout>
需要注意的是:
1:层级关系
RelativeLayout-----
LinearLayout----
ScrollView,
Button
2:在AndroidManifest.xml中的该activity配置 Android:windowSoftInputMode="stateHidden|adjustResize"
3:看如下代码
etAccount = (EditText) this.findViewById(R.id.sms_login_et_accout);
etAccount.setOnClickListener(this);
etAccount.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
changeScrollView();
return false;
}
});
/**
* 使ScrollView指向底部
*/
private void changeScrollView(){
h.postDelayed(new Runnable() {
@Override
public void run() {
sl_center.scrollTo(0, sl_center.getHeight());
}
}, 300);
}
Handler h = new Handler(){
public void handleMessage(Message msg) {
};
};
以上所述是小编给大家介绍的Android开发软键盘遮挡登陆按钮的完美解决方案网站的支持!
来源:http://blog.csdn.net/yigelangmandeshiren/article/details/24982609


猜你喜欢
- 1、添加maven依赖<dependency>  
- 效果图如下所示:一、shape 样式:(在drawable新建--》new--》Drawable resource file 在父级标签se
- 1 编程语言简介编程语言(programming language)可以简单的理解为一种计算机和人都能识别的语言。一种计算机语言让程序员能够
- 前言当我们爱上lambda并且大范围使用它的时候,我想大家都会被lambda中的return语句狠狠地调戏过,所以今天我们需要一起来揭开la
- 效果:代码:XmlDocument xml = new XmlDocument(); &nbs
- 对于服务器端开发人员而言,调用第三方接口获取数据,将其“代理”转化并返给客户端几乎是家常便
- 本文实例为大家分享了android短信管理器SmsManager的具体代码,供大家参考,具体内容如下需要注册的权限<uses-perm
- 前言惰性计算(尽可能延迟表达式求值)是许多函数式编程语言的特性。惰性集合在需要时提供其元素,无需预先计算它们,这带来了一些好处。首先,您可以
- 主题Theme就是用来设置界面UI风格,可以设置整个应用或者某个活动Activity的界面风格。在Android SDK中内置了下面的The
- 目录前言HuTool 中的一些常用工具类日期相关 API随机工具图片工具彩色转换成黑白添加文字水印加密解密工具布隆过滤器邮件工具HTML 工
- 彩色图片转为灰度图的公式如下:gray(i,j) = 0.299 * Red(i,j)+0.587*Green(i,j)+0.114*Blu
- 本篇文章主要介绍了详解Xamarin.Android 利用Fragment实现底部菜单,分享给大家,具体如下:效果图:第一步:添加引用引用
- 如何使用struts2 * ,或者自定义 * 。特别注意,在使用 * 的时候,在Action里面必须最后一定要引用struts2自带的 *
- 有这样一个有关汽车的类。public class Car {  
- 相信大家都有这样的一个需求,选择相应开始时间和结束时间,对数据进行筛选,下面就将使用TimePickerView实现这么一个功能。一、先导入
- 一、概述1、WebRequest:对统一资源标识符 (URI) 发出请求。 这是一个 abstract 类。WebRequest的派生类:P
- 本文运用图片给大家介绍了C#如何检查foreach判读其是否为null,我们下面话不多说,直接来看内容吧。1、foreach遍历列表或数组时
- 一、NIOjava.nio全称java non-blocking IO,是指jdk1.4 及以上版本里提供的新api(New IO) ,为所
- 网上的文章基本上都是只有多数据源或只有动态数据源,而最近的项目需要同时使用两种方式,记录一下配置方法供大家参考。应用场景项目需要同时连接两个
- 最近在做一个项,有一个收藏的功能。后来看到了一点资讯的收藏动画,感觉不错,所有自己就实现了一下。这是效果:附上完整的代码,其中Animati