私は作成したカスタムツールバーのすぐ下にEditTextを持っています。 edittextの下には、リストビューがあります。ただし、ソフトキーボードが表示された場合、ユーザーはキーボードでブロックされたリストを見ることができません。 EditTextを画面の上部に移動するにはどうすればソフトキーボードが表示されたときにツールバーを画面から押し出すことができますか?NoActionBarテーマを使用しています。Android - ソフトキーボードが表示されたら、アクションバーを押し上げます。
EDIT:は、私はすでにManifests.xml
おかげで
android:windowSoftInputMode="adjustPan"
を試してみました!
編集: このコードを使用して、キーボードが表示されたときにツールバーを非表示にします。
numbersActivityRoot = (CoordinatorLayout) findViewById(R.id.numbers_activity_root_view);
appBarLayout = (AppBarLayout) findViewById(R.id.appbarLayout);
numbersActivityRoot.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
Rect r = new Rect();
//r will be populated with the coordinates of your view that area still visible.
numbersActivityRoot.getWindowVisibleDisplayFrame(r);
int heightDiff = numbersActivityRoot.getRootView().getHeight() - (r.bottom - r.top);
if (heightDiff > 100) { // if more than 100 pixels, its probably a keyboard...
Log.v("NUMBERS","Hide toolbar");
appBarLayout.setExpanded(false);
} else {
Log.v("NUMBERS","Show toolbar");
appBarLayout.setExpanded(true);
}
}
});
ログメッセージがキーボードを検出するための正しい結果を示しているが、ツールバーがまだ隠れていない間に。私は間違って何をしていますか?
アンドロイドを試してみましたか:windowSoftInputMode = "adjustPan"? –
はい私は持っています。無効。 – Asym
ビュー階層を添付してください。 –