2012-07-04 29 views
23

Fragment(互換性バージョン)のレイアウトはEditTextです。私はViewFlipperを使ってフラグメント間をフリップします。私がこの特定のFragmentになると、ソフトキーボードが自動的に開きます。これは私が望むものではありません。ここで私はそれをやめたり隠したりしようとしています。EditTextは、ViewPagerでフラグメントが表示されているときに自動的にソフトキーボードを開きます

が試み:

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に

が試み:onCreateViewで

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

をしようとした私の断片

に:

InputMethodManager imm = (InputMethodManager)mContext.getSystemService(Context.INPUT_METHOD_SERVICE); 
imm.hideSoftInputFromWindow(getView().findViewById(R.id.redeem_mobile_number).getWindowToken(), 0); 
私の断片でONSTARTで

が試した:私の断片

でonCreateViewで

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

onPageChangeListenerこれを行うための場所であるように、他の通話はソフトの前に起こるので、それは私には思えますキーボードは実際に開いています。どんな助けも素晴らしいだろう。

+0

の時間後にセーバーだったが: InputMethodManagerのIMM =(InputMethodManager)getSherlockActivity()getSystemService(Context.INPUT_METHOD_SERVICE)。 imm.hideSoftInputFromWindow(inputSearch.getWindowToken()、0); P.S inputSearchはEditTextフィールドです –

答えて

60

Thisポストは、問題の解決策を持っています。

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

+0

とても素敵で、短くて清潔です。ありがとう –

5

これを試しましたか?

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

EDIT:

は(私は今、それが悪いものであるが、これに試みを与える)、これを試してください:)

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(); 
+0

android:configChangesとandroidの組み合わせ:windowSoftInputModeが重要です。 –

+0

ちょうど今試みましたが、助けになりませんでした –

+0

私はフラグメントのビューにスワイプした最初の編集は、それ以降は機能しませんでした。それは間違いなく、これを行う正しい方法のようには見えません –

7
<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内にある必要があります。

+0

私がしたいのは、キーボードを表示した後に検索フィールドに焦点を当てる方法です! –

0

これは私のために働いた。

edittext.setInputType(InputType.TYPE_NULL);  
if (android.os.Build.VERSION.SDK_INT >= 11) 
{ 
    edittext.setRawInputType(InputType.TYPE_CLASS_TEXT); 
    edittext.setTextIsSelectable(true); 
} 
0

AndroidManifest.xml keyboardHiddenであなたの活動のタグにこれを追加この

exitText.setFocusableInTouchMode(true); 
1

をお試しください:それは自動的にソフト入力キーボードを開くことはできません。私が試した

- 私はフラグメントビューの編集テキストをクリックしたとき、私はソフトキーボード不安なポップアップを持っていたすべてのビューを押し上げ

android:configChanges="orientation|keyboardHidden|screenSize" 
android:windowSoftInputMode="stateAlwaysHidden|adjustResize|stateHidden" 
1

(フラグメントでフラグメント私のアプリは、ネストされた断片のアプリです)ダースのソリューションとインターネット上では何も助けてくれません。これはEditTextをXMLで編集しています(上記のビューではなく、マニフェスト/作成アクティビティの上書きではありません)。

android:focusableInTouchMode="false"あなたのEditTextのxmlへの行。

私は

how to block virtual keyboard while clicking on edittext in android?

のみ2人が彼に投票し、このスレッドにACengizからソリューションを借り? 。私にとっては、フラグメントトライ内のキーボードを非表示にするには頭痛

関連する問題