2011-12-02 2 views
0

런타임시 일부 레이아웃을 수행해야하는이 활동이 있습니다 (이 특정 인스턴스에서는 그룹 표시기가 기본 왼쪽 대신보기의 오른쪽에 정렬되도록 표시기 경계 (ExpandableListView.setIndicatorBound)를 설정해야합니다.액티비티의 뷰를 수동으로 레이아웃하기에 좋은 시간입니까?

나는 나의 Activity:onCreate에서이 코드를 가지고 :

int viewWidth = mListView.getWidth(); 
int groupIndicatorWidth = getResources().getDrawable(R.drawable.up).getMinimumWidth(); 
mListView.setIndicatorBounds(viewWidth - groupIndicatorWidth, viewWidth); 
app.fetchItems(this); 

을 아주 당연하게도, viewWidth 런타임에 0 밝혀

내 질문은 내가/과부하 때 t을 구현해야하는지 방법이다. 그는보기의 아이들이 배치되어 그들의 치수가 유효했을까요? 기본적으로 Windows에서는 일반적으로 OnSize/OnResize에 이러한 코드를 넣습니다.

Activity:onPostCreateActivity:onPostResume이 발견되었지만 문서에도 "응용 프로그램 코드가 실행 된 후에 시스템 클래스가 최종 초기화를 수행하기 위해 일반적으로이 메서드를 구현하지 않습니다"라는 내용이 있습니다.

편집

몇 가지 해결 방법이이 스레드가 나와 찾았 Android: Need to use onSizeChanged for View.getWidth/Height() in class extending Activity

답변

0

뷰의 크기는 (귀하의 예제에서 목록보기) 변경 알 수있는 가장 확실한 방법은,이다 해당 뷰를 확장하고 onSizeChanged(int w, int h, int oldw, int oldh) 메소드를 재정의하십시오.

+0

바로 옆에있는 과업에 약간의 비트가 있지만 어쨌든 작동합니다! 감사. –

관련 문제