有没有什么办法从Java类更改android:windowSoftInputMode值?
我想要执行我的选项卡为每个选项卡具有不同的windowSoftInputMode
属性。 如果从一个单一的活动完成你的标签的所有处理,如何从Java类访问此属性?
有什么办法从Java代码访问这个清单属性?
使用以下命令更改活动的softInputMode。
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
使用以下内容更改EditText的softInputtypes。
mEditText.setImeOptions(EditorInfo.IME_ACTION_DONE);
感谢@Eliezer进行更正
根据Prasham的评论 ,我做到了这一点,并挽救了我的生命,感谢他! EditText
和SoftWindowInput
模式是相当错误的,当你有一个ScrollView
SoftWindowInput
的布局,你是dynamic填充它。
由于我已经阅读了这篇文章,但仍然继续阅读其他答案/评论(如Prashan的一篇),所以我决定写一篇新文章。
在我使用ScrollView
的代码下面:
Activity.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
我的目标是使用两种不同的标签模式。 模式是SOFT_INPUT_ADJUST_RESIZE
和SOFT_INPUT_ADJUST_NOTHING
。
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
上面的代码行本身不起作用。 应用程序始终处于ADJUST_NOTHING
状态。 但是,如果windowSoftInputMode="adjustResize"
被插入到AndroidManifest.xml文件的<activity>
标签中,则应用程序窗口将被调整为默认值。 另外,当你打电话下面的行
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_NOTHING);
它会像预期的那样行事,没有任何东西被重新调整。
PS改进的答案
您可以以编程方式使用以下代码
android.view.inputmethod.InputMethodManager imm = (android.view.inputmethod.InputMethodManager) context .getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(myEditText.getWindowToken(), 0);
谢谢迪帕克