31

レイアウトに があるFragment(互換バージョン) がありEditTextます。を使用してViewFlipperフラグメントを切り替えています。この特定の に到達するFragmentと、ソフト キーボードが自動的に開きます。これは私が望むものではありません。これが私がそれを止めたり隠したりしようとしたものです。

試した:

android:descendantFocusability="beforeDescendants" 

フラグメントのメイン ビュー

試した:

android:windowSoftInputMode="stateHidden"

android:windowSoftInputMode="stateAlwaysHidden"

アクティビティのマニフェストで

試した:

InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(mViewPager.getChildAt(position).getWindowToken(), 0);

私のViewPagerのOnPageChangeListenerで

試した:

InputMethodManager imm = (InputMethodManager)mContext.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(voucherView.findViewById(R.id.redeem_mobile_number).getWindowToken(), 0);

私のフラグメントの onCreateView で

試した:

InputMethodManager imm = (InputMethodManager)mContext.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(getView().findViewById(R.id.redeem_mobile_number).getWindowToken(), 0);

私のフラグメントの onStart で

試した:

voucherView.findViewById(R.id.redeem_mobile_number).clearFocus();

私のフラグメントの onCreateView で

ソフトキーボードが実際に開く前に他の呼び出しが発生するため、 onPageChangeListener がこれを行う場所であるように思えます。どんな助けでも素晴らしいでしょう。

4

7 に答える 7

81

この投稿には、問題の解決策があります。

答えは、を含むに追加android:focusableInTouchMode="true"することでした。現在、ソフトキーボードは自動的に表示されません。LinearLayoutEditText

于 2012-07-05T09:07:23.847 に答える
8
 <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 内にある必要があります。

于 2012-11-19T15:02:53.107 に答える
5

これを試しましたか?

<activity
    android:name=".YourActivityName"
    android:configChanges="keyboardHidden|orientation"
    android:windowSoftInputMode="stateHidden" />

編集:

これを試してください(今は悪いですが、これを試してみてください):)

    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();
于 2012-07-04T11:04:42.477 に答える
1

これを、keyboardHidden のアクティビティ タグに追加しますAndroidManifest.xml 。ソフト入力キーボードを自動的に開かないようにします。

android:configChanges="orientation|keyboardHidden|screenSize"
android:windowSoftInputMode="stateAlwaysHidden|adjustResize|stateHidden"
于 2016-05-09T07:11:53.423 に答える
0

これを試して

exitText.setFocusableInTouchMode(true);
于 2015-01-04T07:35:31.980 に答える