在查找有关堆栈溢出的各种问题后,我发现许多其他人遇到以下问题:
这两者的解决方案都在ActivityManifest.xml
。
要防止在打开软键盘时调整背景图片的大小,您可以将android:windowSoftInputMode="stateVisible|adjustPan"
添加到清单中的<activity>
。
要防止活动开始时软键盘打开,您可以将android:windowSoftInputMode="stateHidden"
添加到清单中的<activity>
。
一个解决方案需要stateHidden
而另一个解决方案需要stateVisible
这一事实意味着我无法使用这两种解决方案。我希望防止软键盘关注活动开始但还阻止软键盘在用户 决定关注{{1}时调整背景大小}}
这两个问题都有可行的解决方案吗?
答案 0 :(得分:0)
如果您的EditText包装在父容器中,请为该容器设置android:focusableInTouchMode="true"
。基本上,使该容器在活动开始时获得初始焦点。看一下这个link
答案 1 :(得分:0)
一个解决方案需要stateHidden而另一个解决方案需要 stateVisible意味着我不能同时使用这两种解决方案。
是。但是,您可以使用stateHidden|adjustPan
。
除非用户点击EditText
,否则不会弹出键盘。您的背景可能会在定位方面发生变化;不会发生背景缩放。
答案 2 :(得分:0)
布局的任何部分都是可滚动的容器(如ListView)吗?如果是这样,请尝试在XML布局中的该项目上设置android:isScrollContainer="false"
。
如果您有android:isScrollContainer="true"
的任何视图,布局管理器将尝试在弹出键盘时调整布局大小,而不管`android:windowSoftInputMode'。
这是一个类似的问题:What does android:isScrollContainer do?
答案 3 :(得分:0)
基本上有两种方法可以满足您的要求。
只需使用以下活动代码
即可机器人:windowSoftInputMode =&#34; adjustPan | stateAlwaysHidden&#34;
或
使用
android:windowSoftInputMode="stateVisible|adjustPan"
到清单中的活动代码。
现在使用您的EditText,android:focusableInTouchMode="true"
跟android:focusable="false"
一起使用。