2 qq 33400145 qq_33400145 于 2016.03.31 15:45 提问

android viewpager 自适应高度问题

scrollview 嵌套viewpager viewpager 中放入fragment
fragment由Listview显示
第一页比第二页多 第二页会多出很多空白

去哪里加onmeasure

5个回答

qq_33400145
qq_33400145   2016.03.31 15:51

我自己写的viewpager 已经封装了这个onmeasure方法了 还是不行

bdmh
bdmh   Ds   Rxr 2016.03.31 16:02
 package com.jrj.tougu.views;

import android.content.Context;
import android.support.v4.view.ViewPager;
import android.util.AttributeSet;
import android.view.View;

public class WrapContentHeightViewPager extends ViewPager {


      /**
       * Constructor
       *
       * @param context the context
       */
      public WrapContentHeightViewPager(Context context) {
        super(context);
      }

      /**
       * Constructor
       *
       * @param context the context
       * @param attrs the attribute set
       */
      public WrapContentHeightViewPager(Context context, AttributeSet attrs) {
        super(context, attrs);
      }


      @Override
      protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {

        int height = 0;
        for(int i = 0; i < getChildCount(); i++) {
          View child = getChildAt(i);
          child.measure(widthMeasureSpec, MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
          int h = child.getMeasuredHeight();
          if(h > height) height = h;
        }

        heightMeasureSpec = MeasureSpec.makeMeasureSpec(height, MeasureSpec.EXACTLY);

        super.onMeasure(widthMeasureSpec, heightMeasureSpec);
      }


    }
qq_34972666
qq_34972666 你这个只是找到最大高度去自适应,还是会出现空白的,等于没回答
接近 2 年之前 回复
CSDNXIAOC
CSDNXIAOC   2016.03.31 16:09

public class CustomViewPager extends ViewPager {
public CustomViewPager(Context context) {
super(context);
}

public CustomViewPager(Context context, AttributeSet attrs) {
    super(context, attrs)......<br/><strong>答案就在这里:</strong><a target='_blank' rel='nofollow' href='http://blog.csdn.net/bianhao94941/article/details/41450543'>Android中viewpager自适应高度</a><br/>----------------------你好,人类,我是来自CSDN星球的问答机器人小C,以上是依据我对问题的理解给出的答案,如果解决了你的问题,望采纳。
qq_33400145
qq_33400145   2016.03.31 16:24

这个方法我已经封装了 还是有问题

Earth_Programer
Earth_Programer   2016.08.23 08:31

请问解决了没有,我也遇到了这个问题。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Android中viewpager自适应高度
public class CustomViewPager extends ViewPager { public CustomViewPager(Context context) { super(context); } public CustomViewPager(Context context, AttributeSet attrs) { super(context, attrs)
ScrollView嵌套ViewPager自适应高度
由于项目需要,ScrollView 嵌套ViewPager加载Fragment再包裹RecyclerView等控件来实现一系列功能。在此主要是关于加载数据,ViewPager动态设置高度的问题。做总结。 问题:ViewPager在ScrollView的包裹下,无论高度是设置match_parent,或是wrap_content,都无法加载出fragment中的数据,必须设置确定直才能显示
android ViewPager 自适应高度
很多Android开发者会遇到的问题,ViewPager无法自适应内容的高度,包括子Fragment或view 下面根据需求给出2中方式来动态根据内容设置ViewPager的高度: 1.是网上大家都说的取所有view最大高度作为ViewPager的高度代码如下: public class AutoHeightViewPager extends ViewPager { pub...
ScrollView嵌套ViewPager,网络获取图片自适应高度
最近项目接到个需求,需要在首页的活动页设置图片,图片要能够按照屏幕的宽度,自适应放大高度,达到可以滑动的效果,一开始想,这很简单嘛,无非就是根据需要下载的图片,和屏幕宽度,计算出图片放大的比率,再使用Scrollview嵌套viewpager就可以了,结果发现图片都显示不出来了,搜索资料后,发现scrollview需要设置  android:fillViewport="true"  来填充scr
ViewPager自适应高度问题
最近在开发中有在一个界面做多组左右滑动的需求,当然平时最常见的就是利用ViewPager和Fragment结合,但是平时常见的只是在一个界面上存在一组左右滑动,且Fragment占满真个界面的情况。对于这个需求,一开始就遇到ViewPager的高度超出而没有自动适配高度的问题。不过网上很多大神已经解决了并分享了。记录总结下来~
ViewPager高度自适应
本文是在对大神文章的理解基础上写的,算是对大神的文章做注解吧!大神文章地址:原文地址ViewPager用的很多,比如广告条等等,可是高度却不能自适应内容,总是会占满全屏,即使设置android:height=”wrap_content”也是没有用的。后来通过网上搜索,发现了几个思路:一、使用LinearLayout布局,利用其使用weight来自动调整ViewPager的高度; 二、使用高度
重写ViewPager实现Scrollview嵌套ViewPager高度自适应
public class MyViewPager extends ViewPager {       public MyViewPager(Context context) {           super(context);       }          /**       * Constructor       *       * @param context the c
仿小红书顶部自适应高度viewpager
仿小红书顶部自适应高度viewpager,地址http://blog.csdn.net/u011622280/article/details/68946204
自适应高度viewpager
能根据fragment的高度来重新绘制viewpager的高度,很方便的一个工具类
ViewPager自适应高度和宽度
重写ViewPager里的onMeasure方法,可使Viewpager的高度宽度自动适应图片 public class CustomViewPager extends ViewPager { public CustomViewPager(Context context) { super(context); } public CustomViewPager(Con