안녕하세요. 초보개발자 도깨비입니다.
mainLayout.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/surface"/>
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/editBox"
android:hint=""
/>
</RelativeLayout>위의 mainLayout.xml을 기본 레이아웃으로 한 후
생성된 SurfaceView를 안쪽 RelativeLayout에 addView 시켰습니다. 그리고 EditText는 보이지 않게 처리했습니다.
이렇게 하니 원하는 대로 SurfaceView에 editText를 보이고 안보이게 끔 하여 문자를 입력받을 수 있게 처리됐습니다.
근데 종종 editText가 안나오는 현상이 일어나더군요.
editText 위치를 터치하면 정상적으로 키패드가 보여지는 것을 보면 제대로 동작은 하고 있는듯 하지만 화면상에서는 보이지 않아
제가 어떠한 텍스트를 입력했는지 확인이 불가능 하게 돼버립니다.(커서조차 나오질 않습니다.)
특정 상황에서 SurfaceView를 터치했을 때 editText의 visible값을 바꿔주는 방법으로 하고 있습니다.
혹시 editText를 화면에 보여지게 할 때 따로 설정해야 하는 값이 있는지 아니면 다르게 나오게 하는 방법이 있는지 궁금합니다.
RelativeLayout 아래에 EditText를 넣었다고 무조건 위에 올려져서 그려지는게 아닌가 보군요..
확실히 LinearLayout을 하나 더 올려주고 그위에 EditText를 올리니 사라졌던 증상이 없어졌습니다.
EditText가 아닌 새롭게 추가한 LinearLayout을 보였다 안보였다 하니까 다시 아까 같은 증상이 일어나네요..
그냥 LinearLayout은 냅두고 EditText를 보였다 안보였다 하는게 옳바른 방법인듯 합니다.
답변 고맙습니다. 시리우스a 님. 많은 도움이 되었습니다.




EditText를 LinearLayout을 부모로 두신다음..
그 안에 EditText를 두고 한번 해보세요.
editText가 surface의 밑으로 숨어서 그런걸지도..
<LinearLayout07.android:layout_width=" wrap_content "08.android:layout_height=" wrap_content "09.android:id="@+id/linearlayout1">10.11.<EditText12.android:layout_width="wrap_content"13.android:layout_height="wrap_content"14.android:id="@+id/editBox"15.android:hint=""16./></LinearLayout>