EditText automatically opens soft keyboard when Fragment is visible with ViewPager
我有一个
尝试:
1 | android:descendantFocusability="beforeDescendants" |
在片段的主视图上
尝试:
1 | android:windowSoftInputMode="stateHidden" |
和
1 | android:windowSoftInputMode="stateAlwaysHidden" |
在活动的清单中
尝试:
1 2 | InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(mViewPager.getChildAt(position).getWindowToken(), 0); |
在我的ViewPager的OnPageChangeListener上
尝试:
1 2 | InputMethodManager imm = (InputMethodManager)mContext.getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(voucherView.findViewById(R.id.redeem_mobile_number).getWindowToken(), 0); |
在我的片段中的onCreateView中
尝试:
1 2 | InputMethodManager imm = (InputMethodManager)mContext.getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(getView().findViewById(R.id.redeem_mobile_number).getWindowToken(), 0); |
在我的片段中的onStart中
尝试:
1 | voucherView.findViewById(R.id.redeem_mobile_number).clearFocus(); |
在我的片段中的onCreateView中
在我看来,onPageChangeListener就是这样做的地方,因为其他调用在软键盘实际打开之前发生。 任何帮助都会很棒。
这篇文章解决了这个问题。
答案是将
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <LinearLayout android:id="@+id/layout" android:layout_width="wrap_content" android:layout_height="wrap_content" android:focusable="true" android:focusableInTouchMode="true" > <EditText android:id="@+id/retailer_search_text" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout> |
跟着它吧。 EditText应该在LinearLayout中。
你试过这个吗?
1 2 3 4 | <activity android:name=".YourActivityName" android:configChanges="keyboardHidden|orientation" android:windowSoftInputMode="stateHidden" /> |
编辑:
试试这个(我现在这是一个糟糕的但尝试这个):)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | Thread splashTread = new Thread() { @Override public void run() { try { sleep(1); } catch (InterruptedException e) { // do nothing } finally { runOnUiThread(new Runnable() { public void run() { InputMethodManager imm = (InputMethodManager)mContext.getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(youreditText.getWindowToken(), 0); } }); } } }; splashTread.start(); |
当我点击片段视图中的编辑文本时,我有一个软键盘令人不安地弹出并推动所有视图(我的应用程序是嵌套片段的应用程序 - 片段中的片段)
我在这里和互联网上尝试了十几种解决方案,但除此之外没有任何帮助,这是用XML编辑
通过将
我在这个帖子上借用了ACengiz的解决方案
如何在android中点击edittext时阻止虚拟键盘?
只有2人投票给他?虽然对我而言,经过几个小时的头痛后,它仍然是一个救星
将其添加到
keyboardHidden:不会让它自动打开软键盘。
1 2 | android:configChanges="orientation|keyboardHidden|screenSize" android:windowSoftInputMode="stateAlwaysHidden|adjustResize|stateHidden" |
试试这个
1 | exitText.setFocusableInTouchMode(true); |
这对我有用。
1 2 3 4 5 6 | edittext.setInputType(InputType.TYPE_NULL); if (android.os.Build.VERSION.SDK_INT >= 11) { edittext.setRawInputType(InputType.TYPE_CLASS_TEXT); edittext.setTextIsSelectable(true); } |