안드로이드 개발 정보
(글 수 1,067)
개발을 한창 하다가 2.3업데이트 후에 View를 visible처리 하는데 버그가 생겼습니다.
해당 버그는 XML에서 invisible로 선언된것이 자바에서 visible로 바꿔도 등장을 하지 않는 것이었습니다.
2.3이전 버전에는 아무 문제 없이 정상 작동 했었죠..
이 버그는 xml의 invisible 버그라는것을 알아냈습니다.
실험에서는 2개 이상의 view가 둘다 invisible일 경우 이런 버그가 나왔습니다. 항상 그런것도 아닙니다-_-...
해결방법은 xml에서 invisible로 선언된 것을 가능하다면 gone으로 바꾸시기 바랍니다.
만약 단순히 보이지 않으면 된다면(자리 차지할 필요 없다면) gone으로서 해결 됩니다.
이때, 둘 이상의 invisible로 선언된 뷰가 있다면 그중 하나라도 gone처리 해도 작동 하더군요..;;
이 버그는 곧 사라질 것으로 보입니다만...
일단 당장 개발을 해야 하는 우리들로서는 임시 방편으로서 이렇게 처리해야 할 것 같습니다.
당혹스런 버그네요...-_-ㅋ
단순한 것이지만 이렇게 까지 알아내는데 너무 많은 시간을 허비했군요...
다른분들은 피해 없으시길 바랍니다.

언젠간 아이언맨같은 모바일 기기를 만들고 싶은..^^;
안드로이드의 매력에 빠져 열심히 공부하는 사람 입니다.~
2011.05.19 22:02:39
public class HelloWorld extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
findViewById(R.id.hello).setVisibility(View.VISIBLE);
}
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
android:id="@+id/hello"
android:visibility="invisible" />
</LinearLayout>
이렇게 해서 잘 되는것 같은데요..? 음.. -.-;; 특정상황일때만 그런가..?
꽤나 치명적일 수 있는 버그가 있었군요.
갤럭시탭 업글될때 기존 어플이 말썽 안 부리길 바래야 되겠네요. ㅡㅜ
좋은 정보 감사드립니다.