私の現在のプロジェクトでは、上部 3 分の 1 にテキストビュー、中央に編集テキスト、下部にボタンを持つビューがあり、すべてほぼ同じスペースを占めています。edittext に何かを入力しようとすると、キーボードがポップアップし、ビューのサイズが変更されないため、キーボードが edittext の半分を非表示にするか、ビューのサイズが変更されて半分のサイズに縮小されます。 ...非常に...くだらない。私のアプリのiPhoneバージョンでは、編集テキストをタップすると拡大して拡大し、ビュー全体を埋めて、編集テキストとキーボードだけが表示されるようにしました。問題は、Androidでそれを行う方法がまったくわからないことです。xml レイアウトを再構築して、linearlayout の代わりに relativelayout を使用するようにしました。簡単だと思ったからです。次に、次のように onFocusChange メソッドに変更を加えます。
et = (EditText)v.findViewById(R.id.etItems);
et.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View arg0, boolean arg1) {
if(arg0==et) {
if(arg1==true) {
Log.i("EditText","got focus");
enlargeEditText();
}
} else {
Log.i("EditText","lost focus");
}
}
});
private void enlargeEditText() {
RelativeLayout.LayoutParams rllp = (LayoutParams) v.getLayoutParams();
rllp.setMargins(0, 0, 0, 0);
v.setLayoutParams(rllp);
}
拡大編集テキスト メソッドは最終的なものではありません。何か変更があるかどうかを確認したかっただけですが、そうではありません...代わりに次のようになります。
08-22 17:26:22.108: E/AndroidRuntime(20662): at de.lochmann.einkaufsliste.FragCreateList$1.onFocusChange(FragCreateList.java:88)
08-22 17:26:22.108: E/AndroidRuntime(20662): at android.view.View.onFocusChanged(View.java:3938)
08-22 17:26:22.108: E/AndroidRuntime(20662): at android.widget.TextView.onFocusChanged(TextView.java:8465)
08-22 17:26:22.108: E/AndroidRuntime(20662): at android.widget.EditText.onFocusChanged(EditText.java:136)
08-22 17:26:22.108: E/AndroidRuntime(20662): at android.view.View.handleFocusGainInternal(View.java:3760)
08-22 17:26:22.108: E/AndroidRuntime(20662): at android.view.View.requestFocus(View.java:5453)
08-22 17:26:22.108: E/AndroidRuntime(20662): at android.view.View.requestFocus(View.java:5403)
08-22 17:26:22.108: E/AndroidRuntime(20662): at android.view.View.requestFocus(View.java:5381)
どうしたの?何か案は?前もって感謝します。