2017-06-22 145 views
0

我使用this library有一個ViewPager垂直滾動。 ViewPager有兩個孩子(孩子是View的,而不是Fragment的):我希望他們中的一個永遠是全屏的大小,而應該總是動態地包裝視圖的內容(View有一些EditText這可能從一行到幾行,增加了View的大小)。Android ViewPager更新getPageWidth動態無需重新頁面

該方法我現在有使用getPageWidth()設置高度(因爲它是一個VerticalViewPager,寬度變得高度)視圖到ViewPager的一小部分,這是使用ViewTreeObserver.OnGlobalLayoutListener()測量的。一旦測量完畢,我會撥打電話notifyDataSetChanged()(我也在getItemPosition(Object object)中使用return POSITION_NONE;),以便ViewPager重新查找頁面,其中getPageWidth()的分數正確。

然後,每當EditText得到一個新的行,我打電話notifyDataSetChanged(),重複上述過程。

這是一個非常粗略的解決方案,因爲用戶可以觀察到正在重新創建的View,以及軟鍵盤開啓和關閉。

所以我的問題是:有沒有辦法更新頁面的寬度(這是我的情況下的高度)動態,而不重新創建View

回答

0

嘗試

ViewPager viewPager; //your viewpager object 
viewPager.getLayoutParams().width = DESIRED_NEW_WIDTH; //sets the width of view 
viewPager.requestLayout(); //updates view so that change to width takes place 

我相信,你還可以通過獲取ViewPager寬度與viewPager.getWidth()或存儲viewPager.getLayoutParams().width一個變量確定你想要的新寬度。然後確定所需的分數。

相關問題