少年恃险若平地,独倚长剑凌清秋。这篇文章主要讲述Android 关于软键盘相关的知识,希望能为你提供帮助。
一、.弹出的时候显示Editext框
添加布局replay_input
< ?xml version="1.0" encoding="utf-8"?>
< LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/reply_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#FFF"
android:orientation="vertical">
< View
android:layout_width="match_parent"
android:layout_height="1px"
android:background="#80808080" />
< LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#FFF"
android:orientation="horizontal">
< RelativeLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1">
< EditText
android:id="@+id/reply"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:paddingRight="30dp" />
< /RelativeLayout>
< Button
android:id="@+id/send_msg"
android:layout_width="50dip"
android:layout_height="35dp"
android:layout_margin="5dp"
android:background="@drawable/master_icon"
android:text="发送"
android:textSize="16sp" />
< /LinearLayout>
< /LinearLayout>
2.编写代码
private PopupWindow editWindow;
View editView = mInflater.inflate(R.layout.replay_input, null);
editWindow = new PopupWindow(editView, ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
editWindow.setOutsideTouchable(true);
editWindow.setFocusable(true);
editWindow.setBackgroundDrawable(new ColorDrawable(Color.WHITE));
EditText replyEdit = (EditText) editView.findViewById(R.id.reply);
replyEdit.setFocusable(true);
replyEdit.requestFocus();
// 以下两句不能颠倒
editWindow.setInputMethodMode(PopupWindow.INPUT_METHOD_NEEDED);
editWindow.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
editWindow.showAtLocation(rlPart, Gravity.BOTTOM, 0, 0);
// 显示键盘
final InputMethodManager imm = (InputMethodManager) mContext.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);
editWindow.setOnDismissListener(new PopupWindow.OnDismissListener() {
@Override
public void onDismiss() {
if (imm.isActive())
imm.toggleSoftInput(0, InputMethodManager.RESULT_SHOWN);
}
});
【Android 关于软键盘】
推荐阅读
- 设计模式 - 模板方法模式(template method pattern) Applet 具体解释
- Memo1.Lines.Add(s) 与 Memo1.Lines.Append(s) 的区别是什么?
- 如何正确的对安卓手机进行数据恢复()
- Android应用源代码ListView实现的文件夹树结构
- (转)微信,QQ这类IM app怎么做——谈谈Websocket
- Kotlin Android学习入门
- Android热修复(HotFix)实战
- 最佳增强现实(AR)工具合集(趋势、框架和工具)
- 9款的适用于Android数据恢复的最佳软件合集