如何显示一个文本编辑框“在”屏幕?
-
19-08-2019 - |
题
我有一个具有纵向的主布局(它固定为纵向)的应用程序,且有一个地在输入文本。我想推出像在横向弹出式窗口与背景图像雾出来。我知道有一个弹出式窗口小部件,但用于旋转文本编辑框中任何想法将是巨大的。旋转它变成一个纵向视图(文本框仅)当键盘滑出也将工作,如将示出与键盘幻灯片的文本框中一个新的屏幕。
解决方案
到您的问题的最简单的解决方案是您从主(人像固定)活动内启动一个单独的EditText
主题活动内显示您dialog
。
在活动的EditText应该没有它的方向固定,因此它会旋转,当你滑出键盘,你会期望。
<强>创建文本输入活动强>
创建要包括一个新的活动只有EditText上查看含有和其他任何(可能确定/取消按钮,也许标签?)。内的清单设置其主题Theme.Dialog
。
<activity android:name="TextEntryActivity"
android:label="My Activity"
android:theme="@android:style/Theme.Dialog"/>
雾化或模糊对话框后面的活动是通过修改前台活动的窗口的属性(文字输入对话框)来完成。内它的onCreate方法使用getWindow().setFlags
施加模糊处理任何后台活动。
getWindow().setFlags(WindowManager.LayoutParams.FLAG_BLUR_BEHIND,
WindowManager.LayoutParams.FLAG_BLUR_BEHIND);
<强>启动,并从文本输入活动读取输入的数值强>
使用startActivityForResult
启动文本输入活动。在这一活动的呼叫setResult
返回使用的此帖子。
重写onActivityResult
方法来监听从子活动的结果。
上键盘的触发启动裸露强>
您随时可以启动文本输入活动,但如果你想始终显示它的键盘时,暴露你可以显式地捕获此事件。
通过将android:configChanges
属性为纵向活动的清单条目开始。应当注册为监听keyboardHidden
。
android:configChanges="keyboardHidden"
在这一活动,覆盖onConfigurationChanged
启动文本输入活性的影响。
@Override
public void onConfigurationChanged(Configuration newConfig) {
Intent i = new Intent(this,TextEntryActivity.class);
startActivityForResult(i, STATIC_INTEGER_VALUE);
}
您可能要检查确认键盘使用NEWCONFIG变量启动文本输入活动之前暴露(而不是隐藏)。
您可能还需要使用相同的技术来自动从文本输入活动返回时,键盘是隐藏的。