. 제목 : 소프트키보드가 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>


이상입니다.
좋은 하루되시고 이상 초간단 해결 방법이었습니다.

 

. 첨부파일

 - 레이아웃 구조

 - 해결된 어플 화면 캡춰