Flowlayout和Scrollview共存的问题
如题~加入项目后,在flowlayout外面套一层ScrollLayout就会显示不出来~求解答。。。
如题~加入项目后,在flowlayout外面套一层ScrollLayout就会显示不出来~求解答。。。
2015-01-11
你好,我在视频中的布局文件外层添加了ScrollView,一切正常呀~
测试布局文件如下:
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent"> <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" > <com.imooc.view.FlowLayout android:id="@+id/id_flowlayout" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="#E5E5F5" android:padding="20dp" > </com.imooc.view.FlowLayout> </RelativeLayout> </ScrollView>
//你可能这样写: setMeasuredDimension( modeWidth == MeasureSpec.AT_MOST ? width + getPaddingLeft() + getPaddingRight() : sizeWidth, modeHeight == MeasureSpec.AT_MOST ? height + getPaddingTop()+ getPaddingBottom() : sizeHeight ); //用ScrollView的话modeHeight和sizeHeight取值永远为0,0即不属于AT_MOST也不属于EXACTLY,而是属于UNSPECIFIED //所以第二个三目表达式最终选择右边的sizeHeight,而sizeHeight=0,把高度设置为0,肯定显示不出来 //正确的写法: setMeasuredDimension( modeWidth == MeasureSpec.EXACTLY ? sizeWidth : width + getPaddingLeft() + getPaddingRight(), modeHeight == MeasureSpec.EXACTLY ? sizeHeight : height + getPaddingTop()+ getPaddingBottom() ); //因为modeHeight也不是EXACTLY,所以第二个三目表达式最终选择右边的height + getPaddingTop()+ getPaddingBottom(),这个是流式布局算好的值,所以可以显示
举报