我已经阅读了讨论这个问题的其他问题, 除了 第一个创建的布局之外,所有这些都适用于我的布局。
目前,这是我的 onCreate
方法的顶部:
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
^ 这使得至少键盘不会在启动时弹出,但 EditText
仍然专注于。
这是我的 XML
的 EditText
:
<EditText
android:id="@+id/password"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/changePass"
android:layout_centerHorizontal="true"
android:layout_marginTop="167dp"
android:ems="10"
android:imeOptions="flagNoExtractUi"
android:inputType="textPassword"
android:maxLength="30" >
</EditText>
这是我提出活动时的样子:
问题是,对于某些手机,当 EditText
像这样聚焦时,他们无法写入。我希望它 不 聚焦。
我所做的工作适用于提出的下一个布局,因为它 EditTexts
没有重点关注并且看起来更像这样:
请注意,它是相同的布局。这是用户返回此屏幕后的屏幕,这表明 XML
没有问题,因为这是相同的 XML
,但问题是 EditText
仅关注创建活动的时间。
我做了研究,所有其他问题都没有帮助我解决这个问题(但是它们确实帮助键盘不显示,谢天谢地)。我怎样才能使 EditText
在启动时看起来像第二个屏幕截图,而不是第一个?
原文由 Michael Yaworski 发布,翻译遵循 CC BY-SA 4.0 许可协议
您可以设置 Layout 的属性,例如
android:descendantFocusability="beforeDescendants"
和android:focusableInTouchMode="true"
例子:
希望这个有用;)