gpt4 book ai didi

android - 动态设置 ViewPager 高度

转载 作者:可可西里 更新时间:2023-11-01 18:45:43 29 4
gpt4 key购买 nike

我正在尝试放置一个具有不同高度的不同 fragment 的 ViewPager。我知道 wrap_content 不能与 ViewPager 一起使用,所以我试图动态设置寻呼机高度。我在页面监听器中设置寻呼机高度:

...
indicator.setOnPageChangeListener(new OnPageChangeListener() {

@Override
public void onPageSelected(int selected) {
final View view = fragments[selected].getView();
if (view != null) {
pager.setLayoutParams(new LayoutParams(
LayoutParams.MATCH_PARENT, view
.getMeasuredHeight()));

}

}

不幸的是,它不起作用,因为 getMeasuredHeight()Fragment 上返回的值是错误的。我做错了什么?

最佳答案

这是我的解决方案:

    ViewTreeObserver viewTreeObserver = mViewPager.getViewTreeObserver();
viewTreeObserver
.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {

@Override
public void onGlobalLayout() {

LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.WRAP_CONTENT);

int viewPagerWidth = mViewPager.getWidth();
float viewPagerHeight = (float) (viewPagerWidth * FEATURED_IMAGE_RATIO);

layoutParams.width = viewPagerWidth;
layoutParams.height = (int) viewPagerHeight;

mViewPager.setLayoutParams(layoutParams);
mViewPager.getViewTreeObserver()
.removeGlobalOnLayoutListener(this);
}
});

我在onResume()中调用它;

关于android - 动态设置 ViewPager 高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13419416/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com