마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

EditText 키보드 올라올때 질문좀여..

0 추천
안녕하세요

요즘 EditText 때문에 정말 힘드네요..

 

지금 제가 EditText 밑에 버튼들이 있는데

EditText를 선택했을때 키보드가 아래에서 올라오는데

올라올때 이 밑에 버튼들을 가려버려서 버튼을 누를수가 없습니다..

버튼들이 지우기, 전송하기 이런것들이라 text를 입력하면서 버튼이 동시에 보여야되는데

어떻게 해결해야 될 지 감이 안옵니다..

<Linear>

<EditText>

<Button들이 있는 Linear>

<Linear>

이런식으로 구성되있는데 해결해보려고

Linear위에 Scrollview를 넣어서 EditText 키보드가 올라올때

스크롤을 강제로 내렸는데(fullScroll(View.FOCUS_DOWN);)

이게 잘되긴 하는데 안될때가 있습니다.. 10번중 2번은 안됩니다..

키보드 올라오는것과 스크롤강제로 내리는것이 동시에 이뤄져서

키보드가 나중에 올라오는경우 안되는것 같은데.. 이걸 해결하려고 포커스 내리는것에

딜레이를 좀 줬더니 너무 부자연스럽습니다..

 

어떻게든 꼼시(?)를 쓰면 꾸역꾸역 될 거 같긴한데..

이와 관련해서 정석적으로 개발하는 방법이 있는지 궁금합니다..

 

-----------------------------------

자세하게 안적어서 죄송합니다..

키보드가 올라오고 스크롤해서 아래 버튼을 볼 수는 있는데

저는 EditText 선택함과 동시에 아래 버튼까지 다 보이게 하고 싶습니다..
익명사용자 님이 2016년 9월 1일 질문
2016년 9월 1일 수정

2개의 답변

0 추천
겉을 ScrollView로 감싸서 구성해보세요.
캬옹이 (37,920 포인트) 님이 2016년 9월 1일 답변
저는 정석적인 방법이 있는지 궁금해서..
다른앱들 보면 EditText선택해서 키보드 올라와도
아래 View까지 잘 나오는걸 많이봐서..

ScrollView는 위에 본문에도 적었듯이 이미 사용해서
적용되있는데 뭔가 부자연스러운 부분이 있어서요..
다른 앱들도 ScrollView를 사용해서 개발한건지..
이게 정석인건지 궁금해요
focusdown이니 뭐니 그런거 필요없고 별다른 옵션 안넣어도 자연스럽게 됩니다.
EditText 선택했을때 키보드가 올라오는 위치가 커서기준으로 아래위 짜르고 화면에 구성되는데 아무것도 안넣어도 아래 View까지 다 보인다는게 이해가 안되네요
다시 읽어보니 제가 글에 자세히 안적었던것 같네요
키보드 올라왔을때 손으로 스크롤해서 버튼을 보는게 아니라
EditText 누름과 동시에 바로 화면에 버튼을 보이고 싶습니다..
sv.smoothScrollTo(0, sv.getBottom() + sv.getScrollY());

이걸로 한번 해보세요.
0 추천
androidmanifest에서 activity 속성에 android:windowSoftInputMode="adjustResize" 추가해보세요. 원하시는게 이게 맞는진 모르겠네요.
버닝 (4,880 포인트) 님이 2016년 9월 1일 답변
http://screencast.com/t/05LJhOX9Z

링크가 댓글에는 안걸리는데 이런화면을 원하는데
adjustresize 넣어도 안되네요ㅠ
거니바님의 세팅에 더해서 아랫처럼 한번 해보시죠.
RelativeLayout으로 전체를 감싸고 그 안에 ScrollView를 match_parent로, LinearLayout을 wrap_content, layout_alignParentBottom="true"로 해보세요. 조금 손보시면 원하시는 화면이랑 비슷할 것으로 보입니다.

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="match_parent"
    android:layout_height="match_parent">
<ScrollView
        android:id="@+id/scrollview"
        android:layout_height="match_parent"
        android:layout_width="match_parent"
        android:layout_above="@+id/login_form">

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="bottom|center_horizontal"
            android:src="your_image_resource"/>

    </ScrollView>

    <LinearLayout
        android:id="@+id/login_form"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity=""
        android:layout_alignParentBottom="true"
        android:orientation="vertical">

  </LinearLayout>
</RelativeLayout>
...