2012-11-30 5 views
0

ScrollView를 확장하는 클래스에서 LinearLayout을 사용하고 있습니다. LinearLayout에는 내 사용자 정의 클래스의 오버라이드 된 onScrollChanged() 메서드 내에서 높이가 변경되는 자식 수가 있습니다. 스크롤이 천천히 수행되면 모든 것이 완벽하게 작동합니다. 날아 다니는 움직임으로 빠른 스크롤을 만들면 아이들의 키가 자랍니다. 오버 라이드 된 onScrollChange() 메서드에서 로그 출력을 만들었으며 레이아웃 매개 변수가 적용되지 않았 음을 보여줍니다. LayoutParams가 ScrollView 내에서 어린이에게 적용되지 않습니다.

Log.v("myapp", "getHeight: "+mChildHolder.getChildAt(i).getHeight()); 
Log.v("myapp", "getLayoutParams.height "+mChildHolder.getChildAt(i).getLayoutParams().height); 

출력 :

getHeight: 45 
getLayoutParams.height 90 

있는 ScrollView가 날뛰는 이후의 LayoutParams을 적용하는 것을 허용하지 않는 이유가 뭘까요?

답변

0

해결책이있는 것처럼 보입니다. onScrollChanged()를 호출 할 때마다 requestLayout()이 호출됩니다. 성능면에서 효율적인지 여부는 확실하지 않지만 예상대로 작동합니다.

관련 문제