2017-11-08 4 views
1

ソフトキーボードを起動すると、自分のアプリケーションのウィンドウのサイズを変更します。したがって、manifest.xmlファイルのメインアクティビティに次のタグを追加しました。 android:windowSoftInputMode = "adjustResize" しかし、アプリランチキーボードの時にもキーボードが表示され、ウィンドウのサイズが変更されました。Androidでのウィンドウリーチ

起動時にキーボードが自動的に表示されず、ウィンドウのサイズが変更されないようにします。ウィンドウのサイズ変更が発生するはずです。

任意の指導

だけで、さらに私は打ち上げ時の制御を取得EDITTEXTを持って追加します。アンドロイドを追加する前に:windowSoftInputMode = "adjustResize"、完全な画面の使用が表示され、タッチしたときキーボードが表示されました。私は同じ動作をしたい、それはキーボードで、デフォルトで表示されるべきではない誰かが

答えて

0

あなたはそうのようなあなたのマニフェストファイルにhere

これを追加することにより、アクティビティ属性を設定することができますが、それを試していません。

android:windowSoftInputMode 

<activity android:windowSoftInputMode="stateHidden|adjustResize" . . . > 

アクティビティのメインウィンドウが、オンスクリーンソフトキーボードを含むウィンドウとどのようにやりとりするかを示します。

またadjustResizeがトリックをしたと一緒にstateHiddenタグを追加するhere

+0

完璧を参照することができます。ありがとうRic :) – user8892189

+0

問題はありません。 – Ric17101

0

は、活動起動時にキーボードを非表示にするには、あなたのコードを変更

下回っています入力するように触れたときに表示され、ウィンドウをサイズ変更コードの下に追加します

public void hideSoftKeyboard() { 
     if(getCurrentFocus()!=null) { 
      InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE); 
      inputMethodManager.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0); 
     } 
    } 

のEditTextが集中しますときにyのコード

public void showSoftKeyboard(View view) { 
     InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE); 
     view.requestFocus(); 
     inputMethodManager.showSoftInput(view, 0); 
    } 

コールhideSoftKeyboard()の下に使用し、キーボードを表示するにはonCreateメソッド

edittextがフォーカスを取得すると、以下のコードを使用します。

EditText editText = (EditText)findViewById(R.id.editText); 

     editText.setOnFocusChangeListener(new View.OnFocusChangeListener() { 
      @Override 
      public void onFocusChange(View view, boolean b) { 
       //Toast.makeText(getApplicationContext(),"Focused",Toast.LENGTH_SHORT).show(); 
       getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE); // Resizing window programatically 
       showSoftKeyboard(view); 
      } 
     });