2013-03-16 4 views
0

두 개의 FrameLayout을 모두 사용하고 있습니다. 레이아웃의 맨 아래에있는 editText를 클릭하면 softKeyboard 위에 표시 될 수 있지만 editBox를 클릭하면 frameLayout이 다른 FrameLayout 장소는 바뀌지 않고 키보드 뒤에 배치되고 바닥에있는 frameLayout이 다시 위치를 변경하고 소프트 키보드 위에 표시됩니다.EditText를 소프트 키보드 위에 놓으십시오

내가 시도

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 때문에 발생합니까? 이 문제를 해결하기 위해 무엇을해야합니까? 당신의 활동에 활동 태그

android:configChanges="keyboardHidden|orientation" 

이 당신을 위해 작동하지 않는 경우이

답변

1

나는 RelativeLayout를 사용하여 레이아웃 파일에

android:gravity="bottom" 

를 사용하여 문제를 해결했다.

1

세트있는 ScrollView에 부모 레이아웃을 설정하려고

1

난 당신이 LinearLayout 설정을 사용하고 있는지 확인 해요 그 widthheight 내지 full_parent.
대신 설정 RelativeLayout를 사용, 그렇게하지 마십시오 height에 :

android:layout_height="wrap_content"