gpt4 book ai didi

android - 如何在屏幕上显示文本编辑框 "over"?

转载 作者:IT老高 更新时间:2023-10-28 23:39:14 32 4
gpt4 key购买 nike

我有一个应用程序,其主要布局为纵向(固定为纵向),并且有一个地方可以输入文本。我想像一个横向的弹出窗口一样启动,背景图像模糊不清。我知道有一个弹出窗口小部件,但任何旋转文本编辑框的想法都会很棒。滑出键盘时将其旋转到纵向 View (仅限文本框)也可以,就像在键盘滑动上显示带有文本框的新屏幕一样。

最佳答案

解决问题的最简单方法是在一个单独的 dialog 主题 Activity 中显示您的 EditText,该 Activity 从您的主(纵向固定)Activity 中启动。

EditText Activity 的方向不应固定,因此当您滑出键盘时它会按预期旋转。

创建文本输入 Activity

创建一个新的 Activity,它只包含 EditText View 和您想要包含的任何其他内容(可能是 OK/Cancel 按钮,也可能是一个标签?)。在 list 中将其主题设置为 Theme.Dialog

<activity android:name="TextEntryActivity" 
android:label="My Activity"
android:theme="@android:style/Theme.Dialog"/>

通过修改前台 Activity(您的文本输入对话框)的 Window 属性来对对话框后面的 Activity 进行模糊或模糊处理。在它的 onCreate 方法中,使用 getWindow().setFlags 将模糊应用于任何背景 Activity 。

getWindow().setFlags(WindowManager.LayoutParams.FLAG_BLUR_BEHIND,  
WindowManager.LayoutParams.FLAG_BLUR_BEHIND);

从文本输入 Activity 中启动和读取输入的值

使用 startActivityForResult 启动文本输入 Activity。在该 Activity 中调用 setResult 以使用 this post 中描述的技术返回在返回的 Intent 中输入的文本字符串。 .

重写 onActivityResult 方法以监听子 Activity 的结果。

在暴露的键盘上触发启动

您可以随时启动文本输入 Activity ,但如果您希望在键盘暴露时始终显示它,您可以显式捕获此事件。

首先将 android:configChanges 属性添加到肖像 Activity 的 list 条目中。它应该被注册以监听 keyboardHidden

android:configChanges="keyboardHidden"

在该 Activity 中,覆盖 onConfigurationChanged 以启动文本输入 Activity。

@Override
public void onConfigurationChanged(Configuration newConfig) {
Intent i = new Intent(this,TextEntryActivity.class);
startActivityForResult(i, STATIC_INTEGER_VALUE);
}

在启动文本输入 Activity 之前,您可能需要使用 newConfig 变量检查确认键盘是否被暴露(而不是隐藏)。

您可能还想使用相同的技术在键盘隐藏时自动从文本输入 Activity 返回。

关于android - 如何在屏幕上显示文本编辑框 "over"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/460418/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com