解决ViewPager与GridView嵌套的滑动不流畅和高度无法自适应

最近产品提了一个需求,要求把首页的导航按钮改成和美团类似的可翻页的GridView。


乍一看,这不就是ViewPager嵌套两个GridView吗,简单简单。简单的答应后,我就掉进了控件嵌套的大坑中。


简单的写好代码后,满心欢喜的运行程序,咦???我的ViewPager去哪了?GridView呢?(黑人问号)在一番努力之后,我终于找到了问题的原因,当Viewpager和GridView嵌套时,如果ViewPager的高度设置成warp_content,会导致控件不显示。解决这个问题有两个方案。


一、既然warp_content不行,那么给ViewPager直接设置一个高度!搞定,简单省事,不过这样有一个缺点,就是没法保证所有机型适配,而且有时候GridView内容多,有两行并分页,有时候内容少,只有一行,那么就会空出一部分的高度,导致界面不美观。


二、上面的方法有点太简单粗暴了,这里就介绍一下我现在用的方法,自定义一个ViewPager,在onMeasure中计算他的子View的高度,取最高的来作为自己的高度。代码如下

/**
 * 根据测量的子view设置pager高度
 * @param widthMeasureSpec
 * @param heightMeasureSpec
 */
  • 7
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值