【发布时间】:2017-06-22 16:35:00
【问题描述】:
我使用this library 有一个垂直滚动的ViewPager。 ViewPager 有两个孩子(孩子是View,不是Fragment):我希望其中一个始终是全屏大小,而应该始终动态包装视图的内容(View 有一些EditText 可能从一行到几行,增加了View 的大小。
我目前使用的方法是使用getPageWidth() 将视图的高度(因为它是VerticalViewPager,宽度变为高度)设置为ViewPager 的一小部分,这是使用ViewTreeObserver.OnGlobalLayoutListener() 测量的。测量后,我调用notifyDataSetChanged()(我也在getItemPosition(Object object) 中使用return POSITION_NONE;),以便ViewPager 重新膨胀页面,在getPageWidth() 中具有正确的分数值。
然后,每次EditText换行时,我调用notifyDataSetChanged(),重复上面的过程。
这是一个非常粗略的解决方案,因为用户可以观察到 View 正在重新创建,以及软键盘的开关。
所以我的问题如下:有没有办法动态更新页面的宽度(在我的例子中是高度),而不重新创建View?
【问题讨论】:
标签: java android android-layout android-viewpager