Java Android ViewPager动态更新getPageWidth,无需重新刷新页面

Java Android ViewPager动态更新getPageWidth,无需重新刷新页面,java,android,android-layout,android-viewpager,Java,Android,Android Layout,Android Viewpager,我以前有一个垂直滚动的ViewPager。ViewPager有两个子项(子项是View,而不是Fragment):我希望其中一个始终是全屏大小,而应该始终动态包装视图的内容(视图中有一些编辑文本,可以从一行到几行,从而增加视图的大小) 我目前采用的方法是使用getPageWidth()将视图的高度(因为它是VerticalViewPage文件夹,宽度变为高度)设置为ViewPager的一小部分,这是使用ViewTreeObserver.OnGlobalLayoutListener()测量的。测量

我以前有一个垂直滚动的
ViewPager
ViewPager
有两个子项(子项是
View
,而不是
Fragment
):我希望其中一个始终是全屏大小,而应该始终动态包装视图的内容(视图<代码>中有一些<代码>编辑文本<代码>,可以从一行到几行,从而增加视图的大小)

我目前采用的方法是使用
getPageWidth()
将视图的高度(因为它是
VerticalViewPage文件夹
,宽度变为高度)设置为
ViewPager
的一小部分,这是使用
ViewTreeObserver.OnGlobalLayoutListener()测量的
。测量完成后,我调用
notifyDataSetChanged()
(我还在
getItemPosition(Object Object)
中使用
return POSITION\u NONE;
),以便
ViewPager
重新调整页面,使
getPageWidth()
中的分数值正确

然后,每次
EditText
获得新行时,我调用
notifyDataSetChanged()
,这将重复上述过程

这是一个非常粗略的解决方案,因为用户可以观察正在重新创建的
视图
,以及软键盘的开关

所以我的问题是:有没有一种方法可以动态地更新页面的宽度(在我的例子中是高度),而不必重新创建
视图

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.getWidth()
获取
ViewPager
宽度,或者将
ViewPager.getLayoutParams().width
存储到一个变量中来确定所需的新宽度。然后确定所需的分数