2017-02-23 15 views
2

私のレイアウトのサンプル版です(私のレイアウトのサンプル版ですが、私の似たように見えますが少し複雑です)。ウェル):あなただけの新しいプロジェクトを作成し、レイアウトとしてこれを置く場合は、アプリケーションEditTextが集中され、あなたがそれをクリック初めて起動したときinputTypeとtextAlignmentのEditTextはソフトキーボードを非表示にしますEditText

<?xml version="1.0" encoding="utf-8"?> 

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" 
    android:background="@color/colorPrimaryDark"> 

    <ImageView 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="0.5" 
     android:contentDescription="@string/logo" 
     android:id="@+id/imageView" /> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="vertical"> 

     <EditText 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:id="@+id/editText" 

      android:textAlignment="center" 
      android:inputType="number" 
      /> 

    </LinearLayout> 

</LinearLayout> 

、キーボードが表示され、作りますEditTextキーボード上に上がってください。しかし、このキーボードをアンドロイドのデフォルトの戻るボタンでキャンセルしてEditTextを再度クリックすると、キーボードの後ろに表示されます。

android:textAlignment="center"を取った場合、またはandroid:inputType="number"の場合は完全に動作しますが、両方とも競合します。私は何をすべきですか?私はすでにプログラムでinputTypeを設定しようとしましたが、とにかく動作しませんでした。

EDIT:例FOTO ADDED

enter image description here

MainActivityコード:

public class MainActivity extends AppCompatActivity { 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
    } 
} 
+0

私はギャラクシータブとGoogle Pixelでテストしました。何をテストしているのですか?写真を投稿できますか? –

+0

@Drew、私はMoto G 3rd Genでテストしています。テストする仮想デバイスをいくつか作っていきますが、私のFisical Phoneで動作していないのであれば、それは少なくとも私と同じデバイスを持っている。 – Cocholate

+0

元の投稿を編集して画像を追加できますか?ちょうど私がそれを正しくテストしていることを確認する。アプリケーションが開くと、 'EditText'ビューをクリックし、戻るをクリックし、' EditText'をもう一度クリックします。 –

答えて

1

AndroidManifest.xmlファイルのアクティビティセクションにandroid:windowSoftInputMode="adjustResize"を追加してみてください。

<activity> 
     android:name=".MainActivity" 
     android:windowSoftInputMode="adjustResize" 
</activity> 
+0

私はエミュレートされたデバイスでこれを試してみます。なぜなら私の物理的なものではうまくいかなかったからです。私の携帯電話かもしれません。私はすでにクリーンアップ、アンインストール、再インストールしようとしましたが、何もしません...エミュレータで動作する場合、私はあなたの答えをとにかく受け入れます。あなたは私の問題についてとても助けてくれました – Cocholate

+0

私はテストするためにノート4を壊しています...問題はバッテリーが死んでいることです。私にしばらくお待ちください。私は何ができるかを見ていきます。あなたのMoto G 3rd GenはどんなAPIですか?私はテストを続けながらこの投稿を編集します。 –

+0

私の携帯電話はAPI 23ですが、API 22のエミュレータでテストを実行します – Cocholate

0
getWindow().setSoftInputMode(
      WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN); 

は、あなたはこれを試してみましたか?

https://developer.android.com/reference/android/view/WindowManager.LayoutParams.html

+1

なぜ 'getActivity()'ですか?メインページは既にアクティビティであり、 'MainActivity.this'であってはいけません。もしそうなら、私は試しましたが、うまくいきませんでした。 – Cocholate

+0

yeapはgetWindow()だけを使用します。断片的にgetActivity()を頻繁に使用するので、ちょうど習慣です。 – anzaidemirzoi

+0

うん...それはうまくいきませんでした。 – Cocholate

0

だけでアンドロイドを追加します。windowSoftInputMode = "stateVisible | adjustResizeを" 自分の活動にマニフェストファイルに。 EditTextがオンのアクティビティ。

関連する問題