我想使用我的标签为每个标签设置不同的windowSoftInputMode
属性。当从一个活动完成对标签的所有处理时,如何从java类访问此属性?
有没有办法从java代码访问这个manifest属性?
答案 0 :(得分:104)
使用以下命令更改活动的softInputMode。
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
使用以下命令更改EditText的softInput类型。
mEditText.setImeOptions(EditorInfo.IME_ACTION_DONE);
感谢@Eliezer进行更正
答案 1 :(得分:32)
根据Prasham's comment,我做到了这一点,它救了我的命,感谢他!当您拥有EditText
的布局并且您正在动态填充它时,SoftWindowInput
和ScrollView
模式非常错误。
由于我已经完成了这篇文章,但继续阅读其他答案/评论(如Prashan的那篇),我决定在一篇新帖子中写下来。
在我与ScrollView
:
Activity.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
答案 2 :(得分:9)
我的目标是为标签使用两种不同的模式。模式为SOFT_INPUT_ADJUST_RESIZE
和SOFT_INPUT_ADJUST_NOTHING
。
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
上面的代码行本身并不起作用。应用程序始终处于状态ADJUST_NOTHING
。但是,如果在AndroidManifest.xml文件中将windowSoftInputMode="adjustResize"
插入<activity>
标记,则会将应用程序窗口调整为默认值。此外,当您调用以下行
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_NOTHING);
它将按预期运行,并且不会调整任何大小。
P.S。改进答案
答案 3 :(得分:0)
您可以通过编程方式使用以下代码
android.view.inputmethod.InputMethodManager imm = (android.view.inputmethod.InputMethodManager) context
.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(myEditText.getWindowToken(), 0);
由于 迪帕克
答案 4 :(得分:0)
在Xamarin Android中,您可以通过编程方式执行此操作
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.DetailDesign);
Window.SetSoftInputMode(SoftInput.AdjustPan);
}