1、先上效果图
2、实现的xml源码
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="3dp"
android:text="请输入手机号" />
<ScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fillViewport="true">
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="3dp"
android:hint="请输入手机号"
android:textSize="20dp" />
</ScrollView>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true">
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="取消" />
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="确认" />
</LinearLayout>
</RelativeLayout>
</LinearLayout>
关键代码,在需要上移的控件的上一个控件,增加一个<ScrollView>,并设置属性
android:fillViewport="true"
3、增加xml所在的Activity的属性
android:windowSoftInputMode="adjustResize"
4、不能设置成全屏,否则没法实现自动上移的功能。程序如果加了下面的代码,请删除;
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
完毕。