gpt4 book ai didi

android - 软键盘不会显示在 DialogFragment 中的 EditText RecyclerView 上

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:57:12 25 4
gpt4 key购买 nike

我正在尝试创建一个包含 EditTexts 的 RecyclerView 的 DialogFragment。当我单击 EditText 但键盘从未出现时,它会滚动并出现复制/剪切/粘贴。自从我尝试在 Activity 中实现 RecyclerView 以来,适配器就可以工作。

我已经尝试寻找使键盘显示的解决方案,例如将其添加到 XML 中

</request focus>

或者这个对话框

dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);

但仍然没有效果。

非常感谢。

补充:这是它目前的样子

enter image description here

最佳答案

我知道这个问题是一年前问的,但我今天又问了同样的问题,看来这个问题还是让人不解...

无论如何,在浏览 Stack Overflow 和 Android API 引用后,我遇到了多个“解决方案”,但只有一个可行。现在我不确定为什么这些其他看似不错的解决方案对我不起作用。但至少我认为我理解(​​或者我有一个理论)为什么最终有效的解决方案有效。

注意!如果您使用其他方法在 onCreateDialog(Bundle) 中创建对话框而不是利用 AlertDialog 及其 AlertDialog.Builder.

Here is the solution that worked for me.

按照上述解决方案的建议,您是在“欺骗”AlertDialog 为您设置正确的标志。我并不是说这是糟糕的代码实践,但它可能不是理想的代码实践。对于那些不仅在寻找快速解决方案而且准备深入研究这个问题的人,请继续阅读:

所以根据AlertDialog's documentation , AlertDialog 根据对话框中的任何 View 是否从 View.onCheckIsTextEditor() 返回 true 自动设置一些与窗口放置相关的标志。 AlertLayout 的这种行为是由 this solution 引起的这似乎帮助了很多人提出同样的问题,但没有涉及 RecyclerView 并且只涉及 AlertDialog,而不是 AlertDialog DialogFragment 子类。

您可能会得到后一种解决方案(查看其最多投票的评论),但您的 DialogFragment 子类必须提供一种方法, DialogFragment 已显示, 以获取 AlertDialog 的窗口,以便您可以修改其标志。我还没有试过这个,因为我的 DialogFragment 没有提供那个功能。

关于android - 软键盘不会显示在 DialogFragment 中的 EditText RecyclerView 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36512162/

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