我想用我的标签为每个标签设置不同的windowSoftInputMode
属性。当从一个单独的活动完成对标签的所有处理时,如何从java类访问此属性?
有没有办法从java代码访问这个清单属性?
使用以下命令更改Activity的softInputMode。
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
使用以下命令更改EditText的softInput类型。
mEditText.setImeOptions(EditorInfo.IME_ACTION_DONE);
感谢@Eliezer的纠正
据Prasham's comment说,我这样做了,它救了我的命,谢谢他!当您使用EditText
进行布局并且动态填充它时,SoftWindowInput
和ScrollView
模式非常错误。
由于我已经完成了这篇文章,但继续阅读其他答案/评论(如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);
它将按预期运行,没有任何重新调整大小。
附:改进答案
您可以以编程方式使用以下代码
android.view.inputmethod.InputMethodManager imm = (android.view.inputmethod.InputMethodManager) context
.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(myEditText.getWindowToken(), 0);
谢谢迪帕克
在Xamarin Android你可以编程这样
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.DetailDesign);
Window.SetSoftInputMode(SoftInput.AdjustPan);
}