1

我有一个自定义(子类)RelativeLayout正在使用FragmentViewPager。我使用下面的代码来设置高度此布局中,这是假设有一半的布局高度的观点之一:Android Viewpager和方向更改

override fun onFinishInflate() { 
    super.onFinishInflate() 
    this.post { 
     coverView = findViewById(R.id.cover) 
     val layoutParams = coverView.layoutParams 
     layoutParams.height = this.height/2 
     coverView.layoutParams = layoutParams 
    } 
} 

一切似乎确定,直到屏幕旋转。视图高度不会以新的方向更新。我试过onConfigurationChanged更新高度,但似乎也没有工作。

我应该用不同的方法来设置高度吗? 当屏幕旋转时,我还可以做些什么来设置正确的高度?

+0

请添加活动代码和清单文件代码。 – sumandas

回答

0

我会尝试调整我的代码以使用weightsumLinearLayout

根据文档onFinishInflate()被称为的视图和它的孩子已被夸大。

如果您想要更多自定义处理,请覆盖onMeasure()

+0

我不能使用线性布局,因为视图应该随用户触摸一起移动。 – mhshams

+0

onMeasure()然后呢?您可以获取视图父级维度(RelativeLayout?)并将它们用于子级。 – masp

+0

我应该有一个自定义视图(子类)才能使用OnMeasure。是对的吗? – mhshams