2013-08-27 2 views
1

로드 중일 때 다른보기 대신 ProgressBar 스피너를 표시하려고합니다 (예 : 대화 상자가 아님). 분명히하기 위해 ProgressBar가 하나의보기 만 바꾸고 창이나 활동은 가져 오지 않기를 바란다.인라인 ProgressBar 스피너를 표시하는 방법은 무엇입니까?

내가 생각할 수있는 가장 좋은 해결책은 ProgressBar 가시성을 VISIBLE로 설정하고 가시성을 GONE으로 설정하여 ProgressBar와 실제보기를 배치에 배치하는 것입니다. 로드 후, 나는 그들의 시정을 교환.

이 작동하지만 난 더 우아한 해결책을 기대했다. 어떤 제안? 당신이 어댑터 뷰 AdapterView를 사용하는 일이 있다면

답변

2

가장 좋은 방법은 VISIBLE로 설정 ProgressBar의 가시성과 GONE로 설정보기 가시성, 레이아웃에서의 ProgressBar 및 실제보기를 모두 배치하는 것입니다. 로드 한 후 가시성을 교환합니다.

이 완벽하게 합법적 인 솔루션입니다. 당신이 마음에 들지 않으면, 다음을 시도 할 수 있습니다 :

당신이 ProgressBar, 또는 다음에 View를 배치 할 빈 용기 레이아웃 (등의 LinearLayout, RelativeLayout의)를 추가합니다. 대화 상자의 내부 모습이 컨테이너 찾기 : loading 종료 후

container = (_____Layout) dialogView.findViewById(R.id.container_id); 

ProgressBar하고 다음에 View 만들기 : 코드에서

ProgressBar pb = ....; 

View v = ....; 

, loading가 시작될 때 :

container.addView(pb); 

loading을 한 번 완료 :

container.removeAllViews(); 
container.addView(v); 
1

, 당신은 setEmptyView() 메서드를 호출 할 수 있습니다. 예를 들어 here을 참조하십시오. 내가 생각할 수있는

관련 문제