【问题标题】:Android - How to ViewPager with multiple childs with different heightsAndroid - 如何查看具有不同高度的多个孩子的 ViewPager
【发布时间】:2014-10-21 23:19:25
【问题描述】:

我有一个 ViewPager,在它的适配器中我有 3 个孩子(片段)。这 3 个孩子的身高应该不同。

我已经尝试像这样Android: I am unable to have ViewPager WRAP_CONTENT 覆盖 ViewPager 中的 onMeasure Methode

@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
    super.onMeasure(widthMeasureSpec, heightMeasureSpec);
    View view = null;

    for (int i = 0; i < getChildCount(); i++) {
        // find the first child view
        view = getChildAt(i);
        if (view != null) {
            // measure the first child view with the specified measure spec
            view.measure(widthMeasureSpec, heightMeasureSpec);
        }

         setMeasuredDimension(getMeasuredWidth(),
         measureHeight(heightMeasureSpec, view));
    }

}

但这不适用于 ViewPager 中的所有孩子,它只为所有孩子设置一个高度。

这是从 ViewPager 扩展而来的 CustomViewPager:

这是 viewPager 的适配器:

public class MyPagerAdapter extends FragmentPagerAdapter {

    private final String[] TITLES = { "card1", "card2", "Card3" };

    public MyPagerAdapter(FragmentManager fm) {
        super(fm);
    }

    @Override
    public CharSequence getPageTitle(int position) {
        return TITLES[position];
    }

    @Override
    public int getCount() {
        return TITLES.length;
    }

    @Override
    public Fragment getItem(int position) {
        switch (position) {
        case 0:
            return CookCardFragment.newInstance(position);

        case 1:
            return RecipeCardFragment.newInstance(position);

        case 2:
            return CookCardFragment.newInstance(position);
        }
        return null;
    }

}

【问题讨论】:

    标签: android android-fragments android-viewpager height


    【解决方案1】:
    @Override
        public float getPageWidth(int position) {
        return 0.98f; //(0-1] this values specifies how much space a page will occupy on screen
    }
    

    【讨论】:

      【解决方案2】:

      每次在 FragmentActivity 中调用新片段时,只需尝试更改 viewpager 控件的高度

      【讨论】:

      • 问题是 viewPager 的孩子并不总是相同的高度。例如,我有一个 cmets 孩子,viewPager 应该根据内容缩放其高度。
      • 将 viewpager 高度更改为 android:layout_height="wrap_content"
      猜你喜欢
      • 1970-01-01
      • 2016-05-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-20
      • 2021-11-27
      • 2020-12-15
      • 1970-01-01
      相关资源
      最近更新 更多