有没有办法从java类更改android:WindowsOfInputMode值?
我想让我的选项卡对每个选项卡具有不同的有没有办法从java类更改android:WindowsOfInputMode值?,android,android-tabhost,android-softkeyboard,Android,Android Tabhost,Android Softkeyboard,我想让我的选项卡对每个选项卡具有不同的windowsofInputMode属性。当选项卡的所有处理都从一个活动中完成时,如何从java类访问此属性 有没有办法从java代码访问此清单属性?您可以通过编程方式使用以下代码 android.view.inputmethod.InputMethodManager imm = (android.view.inputmethod.InputMethodManager) context .getSystemService(Co
windowsofInputMode
属性。当选项卡的所有处理都从一个活动中完成时,如何从java类访问此属性
有没有办法从java代码访问此清单属性?您可以通过编程方式使用以下代码
android.view.inputmethod.InputMethodManager imm = (android.view.inputmethod.InputMethodManager) context
.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(myEditText.getWindowToken(), 0);
谢谢
Deepak使用以下命令更改活动的软输入模式
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
使用以下命令更改EditText的软输入类型
mEditText.setImeOptions(EditorInfo.IME_ACTION_DONE);
感谢@Eliezer的纠正根据,我做到了这一点,它救了我的命,感谢他!当您有一个带有ScrollView
的布局,并且动态填充时,EditText
和SoftWindowInput
模式非常有问题
由于我已经阅读了这篇文章,但仍在继续阅读其他答案/评论(如Prashan的一篇),我决定将其写在一篇新文章中
下面是我与我的滚动视图一起使用的代码:
Activity.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
我的目标是对选项卡使用两种不同的模式。模式有SOFT\u INPUT\u ADJUST\u RESIZE
和SOFT\u INPUT\u ADJUST\u NOTHING
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
上面的代码行本身无法工作。应用程序始终在状态下运行ADJUST\u NOTHING
。但是,如果在AndroidManifest.xml文件的
标记中插入了windowSoftInputMode=“adjustResize”
,则应用程序窗口的大小将作为默认值调整。另外,当您拨打以下线路时
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_NOTHING);
它将按预期运行,并且不会调整大小
另外,答案的改进在Xamarin Android中,您可以这样编程
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.DetailDesign);
Window.SetSoftInputMode(SoftInput.AdjustPan);
}
感谢使用此setSoftInputMode方法。。。它真的帮了我。。。其他信息:要访问属性,如adjustPan
和adjustResize
,您可以转到WindowManager.LayoutParams
类,您可以找到许多有用的常量,这些常量可用于setSoftInputMode
method@SureshBora我将@66CLSjY answer和@aman组合在一起,最终得到了这个:getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT\u输入\u状态\u始终\u隐藏)代码>我已经测试过了,真的很有效这是正确的答案吗?根据Window#setSoftInputMode
的唯一可接受值是WindowManager.LayoutParams.SOFT\u INPUT.
@66CLSjY,它对我不起作用。你能告诉我我错过了什么吗?我在活动中调用它:getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT\u INPUT\u ADJUST\u NOTHING)代码>但键盘仍然会向上推我的框架布局,它位于其他视图的顶部。但正是如此,其他观点依然存在。当我将其添加到清单中时,它是有效的,但我不想将其应用于整个活动。在onCreate()中的setContentView之前,您是否调用了setSoftInputMode?嗨,阿曼,在这里阅读您的答案有点困难。我可以看出您非常感谢Prashan,但是您能澄清一些个人评论并解释一下这段代码将帮助解决什么问题吗?谢谢。嗯,不起作用,至少要调整一下锅。只有当我把它放在清单中时,它才能工作。这会使应用程序崩溃。我需要在调整大小和不调整大小之间切换。如果我以编程方式返回到不调整大小,它将不会更改为调整大小。这是一个非常好的观察结果。基本上,在清单中设置windowSoftInputMode=“adjustResize”
有助于以后处理此标志。特别是在一个场景中,您在单个活动中有很多片段。因此,可以通过编程方式从SOFT\u input\u ADJUST\u RESIZE
切换回SOFT\u input\u ADJUST\u NOTHING
,动态地更改活动的输入状态。不错!