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

프로그래스바 도는 중에 다른 액션을 못하게 막는 방법이 있나요??

0 추천
inflate로 프로그래스바 레이아웃 넣고 사용하는데 프로그래스바 도는 중에 화면 전체가 터치 안먹게 할 수 있는 방법이 있을까요??
익명사용자 님이 2016년 4월 19일 질문

2개의 답변

0 추천
방법은 여러가지가 있지만

전역변수로 boolean값을 하나 만드신 후

프로그레스바 레이아웃을 보여주기 직전에 boolean값을 false

프로그레스바를 감춘 후 boolean값을 true로 주신 후

onclick나 ontouch이벤트에서 이 boolean값을 참조하여 터치 여부를 설정할 수 있죠.
모나미153 (17,540 포인트) 님이 2016년 4월 19일 답변
그렇게 되면 터치 리스너가 있는 여러 위젯들을 각각 컨트롤 해주는 수밖에 없나요?ㅜㅜ
그건 아니구요.
터치 리스너에서 boolean값을 체크만 해주시면 됩니다.
boolean값이 true일때만 터치를 허용해 주시면 되는거죠.
프로그래스바 레이아웃이라는게, 정확히 어떤식으로 하셨는지 알아야 될것 같아요.
아예 뷰로 하단 컴포넌트들을 덮어버리는 방식으로도 구현이 가능하니까요.
View v  = inflater.inflate(R.layout.progress_dialog, container, false);
            mActivity.addContentView(v, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
                    ViewGroup.LayoutParams.MATCH_PARENT));
            progressBar = (ProgressBar)v.findViewById(R.id.progress);
progressBar.setVisibility(View.VISIBLE)


레이아웃
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@android:color/transparent"
    android:gravity="center">
    <ProgressBar
        android:id="@+id/progress"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:visibility="invisible"
        />

</LinearLayout>
이런식으로 구현 했는데요 이렇게 한 경우 하단 컴포넌트가 덮어지진 않더라구요 혹시 터치리스너 조작 따로 없이 이 뷰로 하단 컴포넌트를 덮을 수 있는 방법이 있나요??
progresslayout에
android:clickable="true"
속성을 준 후 테스트 해보세요.
0 추천

alert 띄울 때 setCancelable(false) 주세요 

aucd29 (218,390 포인트) 님이 2016년 4월 19일 답변
...