嘗試的幾個方法
1、通過ConstraintLayout進行佈局
app:layout_constraintTop_toBottomOf="@id/tab_layout"
android:layout_width="match_parent"
android:layout_height="0dp"
app:layout_constraintBottom_toBottomOf="parent"
結果:沒有起效果
2、通過固定高度的方式來進行佈局
結果:viewpager裏面我要放的東西高度不一定,所以pass
3、重寫ViewPager的onMeasure
class MyViewPager :ViewPager{
constructor(context: Context):super(context)
constructor(context: Context,attrs: AttributeSet):super(context, attrs)
override fun onMeasure(widthMeasureSpec: Int,heightMeasureSpec: Int) {
var height = 0
for (i in 0 until childCount){
val child = getChildAt(i)
child.measure(widthMeasureSpec,
MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED))
val h = child.measuredHeight
if (h > height){
height = h
}
}
super.onMeasure(widthMeasureSpec, MeasureSpec.makeMeasureSpec(height,
MeasureSpec.EXACTLY))
}
}
最後用的是這個方法,但是這個方法有個壞處,在tablayout跟viewpager連用時,因爲viewpager每個的高度不一樣,所以會以高度最高的子佈局爲viewpager的高度。