android键盘覆盖edittext_Android软键盘弹出时使布局上移,避免软键盘覆盖提交等按钮...
1.先看一下实现效果a.软键盘弹出前的整体布局 b.软键盘弹出后的布局 如图所示,软键盘弹出后,页面布局整体上移,避免了软键盘覆盖提交按钮或者是EditText控件。2.实现方式a.页面布局xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="m
1.先看一下实现效果
a.软键盘弹出前的整体布局
b.软键盘弹出后的布局
如图所示,软键盘弹出后,页面布局整体上移,避免了软键盘覆盖提交按钮或者是EditText控件。
2.实现方式
a.页面布局
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
android:id="@+id/rl_title"
android:layout_width="match_parent"
android:layout_height="wrap_content">
android:id="@+id/scroll_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/rl_title"
android:focusable="true"
android:focusableInTouchMode="true">
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
android:id="@+id/rl_content"
android:layout_width="match_parent"
android:layout_height="wrap_content">
android:id="@+id/edit_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@null"
android:gravity="top"
android:maxLength="100" />
android:id="@+id/btn_submit_order"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:gravity="center"
android:text="提交" />
b.activity中的代码
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final ScrollView scrollView = findViewById(R.id.scroll_view);
findViewById(R.id.edit_text).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
scrollToShowSubmitBtn(scrollView);
}
});
findViewById(R.id.edit_text).setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
scrollToShowSubmitBtn(scrollView);
return false;
}
});
}
/**
* 使滚动条滚动至指定位置(垂直滚动)
*
* @param scrollView 要滚动的ScrollView
* @param to 滚动到的位置
*/
protected void scrollVertical(final ScrollView scrollView, final int to) {
scrollView.postDelayed(new Runnable() {
@Override
public void run() {
scrollView.scrollTo(0, to);
}
},100);
}
/**
* 使ScrollView滚动至底部,显示Submit按钮
*
* @param scrollView 要滚动的scrollView
*/
protected void scrollToShowSubmitBtn(final ScrollView scrollView) {
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
scrollView.postDelayed(new Runnable() {
@Override
public void run() {
scrollVertical(scrollView, scrollView.getHeight());
}
}, 100);
}
}
ps:篇幅有限,仅给出关键代码。其中,布局文件中的ScrollView和activity中的scrollVertical(final ScrollView scrollView, final int to)、scrollToShowSubmitBtn(final ScrollView scrollView)两个方法是重点。
参考博客:http://blog.csdn.net/sinat_31311947/article/details/53899166
更多推荐
所有评论(0)