1

私は2つのFrameLayoutを使用していますが、両方にEditTextが含まれています。レイアウトの下部にあるeditTextをクリックすると、softKeyboardの上に表示されますが、frameLayoutが他のFrameLayoutの上にあるeditBoxをクリックすると、変更されず、後ろに配置されます一番下にあるキーボードとframeLayoutが再び場所を変え、ソフトキーボードの上に表示されます。

私は試した、

mMessageBox.setOnFocusChangeListener(new View.OnFocusChangeListener() {
    @Override
    public void onFocusChange(View v, boolean hasFocus) {
        Commons.logCatchya("onFocusListener changed !");
        if (hasFocus) {
            Commons.logCatchya("onFocusListener hasFocus !");   
        }
        else {
            Commons.logCatchya("onFocusListener do not hav focus !");
        }
    }
});

mMessageBox.setOnKeyListener(new View.OnKeyListener() {

    @Override
    public boolean onKey(View v, int keyCode, KeyEvent event) {
        Commons.logCatchya("setOnKeyListener :" + event.getAction() + " keyCode :" + keyCode);
        return false;
    }
});


mProfileStatusBox.setOnFocusChangeListener(new View.OnFocusChangeListener() {

    @Override
    public void onFocusChange(View v, boolean hasFocus) {
        Commons.logCatchya("onFocusListener mProfileStatusBox changed !");
        if (hasFocus) {
            Commons.logCatchya("onFocusListener mProfileStatusBox hasFocus !"); 
        }
        else {
            Commons.logCatchya("onFocusListener mProfileStatusBox do not hav focus !");
        }

    }
});

しかし、画面上のソフトキーボードボタンを非表示にするをクリックすると、カーソルは使用した編集ボックスに残ります。この問題は FrameLayout が原因ですか? この問題を解決するために何をすべきかはわかりません。

4

3 に答える 3

2

RelativeLayout私は使用して使用して問題を解決しました

android:gravity="bottom"

レイアウトファイルで。

于 2013-03-28T10:30:24.257 に答える
1

アクティビティのアクティビティ タグにこれを設定します

android:configChanges="keyboardHidden|orientation"

うまくいかない場合は、ScrollView で親レイアウトを設定してみてください

于 2013-03-16T17:19:20.247 に答える
1

そのとを にLinearLayout設定して使用していると思います。 そうしないで、代わりに を次のように設定して使用します。widthheightfull_parent
RelativeLayoutheight

android:layout_height="wrap_content"

于 2013-03-16T17:52:22.260 に答える