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