. 제목 : 소프트키보드가 EditText나 하단의 기능 Button들을 가리는 경우 해결 방법
안녕하세요.
이제 안드로이드 앱개발을 시작하는 초보 개발자입니다.
저의 첫 작품으로 윈도우의 메모장과 유사한 텍스트에디터를 만들려고 개발을 하는중
EditText에 글을 입력하면 소프트키보드가 올라오면서
EditText 하단의 기능 버튼들이 있는데
이 Button들을 가리는 현상을 겪게 되었습니다.
그냥 무시하고 넘어갈 수 있었지만..
기능 버튼이 가려서 아무래도 보기도 안좋고 기능 버튼을 클릭하기 위해서
소프트키보드를 제거하려고 백키를 눌러야하는 불편함 때문에
도저히 그냥 넘어갈 수 없어서..
네이버, 구글.. 인터넷에 나와있는 해결 방법을 구현해봤지만.. 해결되지 않았습니다.
그러다가 우연찮게 jota(이오타)Editor의 공개 소스의 main.xml을 보고 따라 그대로 구현해봤는데
헐.. 아주 깔끔하게 해결되었습니다.
저처럼 한 달 동안 삽질하는 일이 없도록 해결 방법을 알리고자 합니다.
main.xml에서
EditText 속성은 android:layout_weight="1"
로 해주세요.
. Layout 구조
└ LinearLayout (Vertical)
└ EditText
└ HorizontalScrollView
└ LinearLayout (Horizontal)
└ Button (SAVE)
└ Button (OPEN)
. layout 폴더의 main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#000000"
android:orientation="vertical" >
<EditText
android:id="@+id/viewarea"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:ems="10"
android:gravity="top|center_vertical"
android:hint="type here."
android:maxHeight="0dip"
android:scrollHorizontally="true"
android:scrollbars="vertical"
android:textColor="#FFFFFF" >
<requestFocus />
</EditText>
<HorizontalScrollView
android:id="@+id/horizontalScrollView1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:scrollbars="none" >
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<Button
android:id="@+id/btnSave"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:minHeight="20dip"
android:minWidth="20dip"
android:text="SAVE"
android:textColor="#FFFFFF"
android:textSize="12dip" />
<Button
android:id="@+id/btnOpen"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:minHeight="20dip"
android:minWidth="20dip"
android:text="OPEN"
android:textColor="#FFFFFF"
android:textSize="12dip" />
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="15dp"
android:text="MNOTE"
android:textColor="#ff9900" />
</LinearLayout>
</HorizontalScrollView>
</LinearLayout>
이상입니다.
좋은 하루되시고 이상 초간단 해결 방법이었습니다.
. 첨부파일
- 레이아웃 구조
- 해결된 어플 화면 캡춰
오!!
이것 때문에 맘 편하게 화인 버튼을 텍스트 위로 하였는데
이렇게 하면 더욱 깔끔하겠네요 ^^