将EditText放在软键盘上方

时间:2013-03-16 17:17:03

标签: java android android-layout

我正在使用2个FrameLayout,其中都有EditText,如果我单击在softKeyboard上方可以看到布局底部的editText但是如果我单击editBox哪个frameLayout在其他FrameLayout之上,则不会改变并放在键盘后面,底部的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吗?我不应该怎么做才能解决这个问题。

3 个答案:

答案 0 :(得分:1)

在活动

中为您的活动代码设置此项
android:configChanges="keyboardHidden|orientation"

如果它不起作用,请尝试在ScrollView中设置父布局

答案 1 :(得分:1)

我确定您正在使用LinearLayout将其widthheight设置为full_parent
不要这样做,请使用RelativeLayout而不是将height设置为:

android:layout_height="wrap_content"

答案 2 :(得分:1)

我使用RelativeLayout并使用

解决了这个问题
android:gravity="bottom"
布局文件中的