Android 高度设置为环绕内容的viewpager内部布局的高度
我遇到了这样一个问题:设置Android 高度设置为环绕内容的viewpager内部布局的高度,android,android-layout,android-viewpager,android-linearlayout,Android,Android Layout,Android Viewpager,Android Linearlayout,我遇到了这样一个问题:设置android:height=“wrap\u content” 现在,我已经成功地应用了上面提到的修复程序,它正在按预期工作。我的ViewPager正确地假设了其最高元素的高度 然而!我的viewpager中的每个项目都包含一个linearlayout,其中包含2个元素,如下所示:(这是我的容器) 这实际上给了我一个类似这样的布局: 我想在这里说明的是,在第二页上,LinearLayoutfoo与第一页的高度不同。这是意料之中的 但当我想将每页上的按钮与底部对齐时
android:height=“wrap\u content”
现在,我已经成功地应用了上面提到的修复程序,它正在按预期工作。我的ViewPager正确地假设了其最高元素的高度
然而!我的viewpager中的每个项目都包含一个linearlayout,其中包含2个元素,如下所示:(这是我的容器)
这实际上给了我一个类似这样的布局:
我想在这里说明的是,在第二页上,LinearLayoutfoo
与第一页的高度不同。这是意料之中的
但当我想将每页上的按钮与底部对齐时,问题就出现了!这当然是一个问题,因为第一页的foo
底部与第二页的foo
底部不一样
在我看来,标准的解决方案是将foo
的高度设置为与父母匹配。但是,如果我这样做,整个页面将成为imageview的高度,因为上面提到的应用修复无法再正确计算每个孩子的高度
因此,请记住,我的整个目标是拥有高度相等的页面,具有动态内容(文本),同时保持按钮与页面底部对齐,您在这里建议什么解决方案
我尝试过的事情包括在树上的布局上调整高度设置,以及在添加到我的ViewPagerAdapter时将每个视图的高度设置为其容器的测量高度,但似乎没有任何效果
如有任何建议,将不胜感激。如果我遗漏了什么,或者您想查看更多信息,请发表评论。我做了是的
我所要做的就是在我的按钮上方添加一个带有weight=1
的视图,并给我的按钮一个静态高度。现在,按钮在每个页面上正确地排列到底部,这是因为添加的视图扩展以填充剩余的大小
我还必须将+1添加到我上面提到的“hacky”解决方案中定义的高度,否则我添加的视图会将项目从最大页面的布局中挤出,如下所示:
if (height != 0) {
heightMeasureSpec = MeasureSpec.makeMeasureSpec(height + 1 /* This is a heuristic solution */, MeasureSpec.EXACTLY);
}
是的
(布局更改):
android:layout\u width=“匹配父项”
android:layout\u height=“0dp”
android:layout_weight=“1”/
您说您添加了带有weight=0
的视图,但您的视图在您的答案中包含weight=1
——请您告知是哪一个视图?谢谢,它是weight=1,我还为答案添加了详细信息。
if (height != 0) {
heightMeasureSpec = MeasureSpec.makeMeasureSpec(height + 1 /* This is a heuristic solution */, MeasureSpec.EXACTLY);
}
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<View <!-- ADDED -->
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"/>
<Button
android:layout_width="wrap_content"
android:layout_height="@dimen/buttonHeight"/>