问题描述
- Android自定义控件在scrollview中设置高度不起作用,已经重写了 onMeasure方法
-
布局:
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true"><RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:id="@+id/title_template" android:layout_width="match_parent" android:text="hahahah" android:layout_height="700dp" /> <com.tky.mpchart.View.BarChart2View android:id="@+id/fl_chart2" android:layout_below="@+id/title_template" android:layout_width="match_parent" android:layout_height="600dp" /> </RelativeLayout> </ScrollView> 自定义控件: protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super.onMeasure(widthMeasureSpec, heightMeasureSpec); this.setMeasuredDimension(this.measureWidth(widthMeasureSpec), this.measureHeight(heightMeasureSpec)); } private int measureWidth(int measureSpec) { int result = 100; int specMode = MeasureSpec.getMode(measureSpec); int specSize = MeasureSpec.getSize(measureSpec); if(specMode == 1073741824) { result = specSize; } else if(specMode == -2147483648) { result = Math.min(result, specSize); } return result; } private int measureHeight(int measureSpec) { int result = 100; int specMode = MeasureSpec.getMode(measureSpec); int specSize = MeasureSpec.getSize(measureSpec); if(specMode == 1073741824) { result = specSize; } else if(specMode == -2147483648) { result = Math.min(result, specSize); } return result; }
解决方案
你把RelativeLayout的高度改成wrap_content看看
解决方案二:
你的吧ScrollView 里面的那层换成linearlayout
http://blog.sina.com.cn/s/blog_6cf2ea6a0102v61f.html
时间: 2024-08-18 10:51:36