我有一个具有纵向的主布局(它固定为纵向)的应用程序,且有一个地在输入文本。我想推出像在横向弹出式窗口与背景图像雾出来。我知道有一个弹出式窗口小部件,但用于旋转文本编辑框中任何想法将是巨大的。旋转它变成一个纵向视图(文本框仅)当键盘滑出也将工作,如将示出与键盘幻灯片的文本框中一个新的屏幕。

有帮助吗?

解决方案

到您的问题的最简单的解决方案是您从主(人像固定)活动内启动一个单独的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变量启动文本输入活动之前暴露(而不是隐藏)。

您可能还需要使用相同的技术来自动从文本输入活动返回时,键盘是隐藏的。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top