android 事件滑动问题 viewPager+fragment+listView

山城忙碌人 2016-07-29 04:45:28

我想实现的效果图如上,现在的问题是,viewPager左右滑动正常,listView上下无法滑动,布局格式是MyViewPager(继承ViewPager)+Fragment+RefershListView(继承ListView).
请问如何处理这种问题? lisetView的dispatchTouchEvent这里处理?还是重写ViewPager的onTouchEvent或者dispatchTouchEvent处理?
...全文
372 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
山城忙碌人 2016-08-03
  • 打赏
  • 举报
回复
问题已解决! 原代码:
@Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
 
        isOnMeasure = true;
        int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,
                MeasureSpec.AT_MOST);
        super.onMeasure(widthMeasureSpec, expandSpec);
    }
修改后的代码:
@Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
 
        isOnMeasure = true;
        int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,
                MeasureSpec.AT_MOST);
        super.onMeasure(widthMeasureSpec,  heightMeasureSpec);
    }
dereck1314 2016-07-30
  • 打赏
  • 举报
回复
学习学习,万一以后要用到类似功能呢
山城忙碌人 2016-07-30
  • 打赏
  • 举报
回复
引用 9 楼 ink_s 的回复:
这就不知道了,你这个重写了的LISTVIEW直接放到activity中可以用吗?在你这个布局里,listview可以直接设置宽高fill_parent吧。
就是设置的fill_prent.当时为了解决adapter的getView方法,多次执行,没想到却遇到了listview无法上下滑动的问题
ink_s 2016-07-30
  • 打赏
  • 举报
回复
这就不知道了,你这个重写了的LISTVIEW直接放到activity中可以用吗?在你这个布局里,listview可以直接设置宽高fill_parent吧。
山城忙碌人 2016-07-29
  • 打赏
  • 举报
回复
引用 7 楼 ink_s 的回复:
干嘛要重写onMeasure,你是要滑动的时候上面收起来吗?那样的话你可以滑动监听,list滑动前判断上边收起来了没,如果没有收起来,先收起上边再滑动就行了吧
为了是解决adapter,getView重复调用的问题! ListView代码如下:
private boolean isOnMeasure;
	public boolean isMeasure() {
		return isOnMeasure;
	}
@Override
	protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {

		isOnMeasure = true;
		int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,
				MeasureSpec.AT_MOST);
		super.onMeasure(widthMeasureSpec, expandSpec);
	}
 
	@Override
	protected void onLayout(boolean changed, int l, int t, int r, int b) {
		isOnMeasure = false;
		super.onLayout(changed, l, t, r, b);
	}
adapter代码如下:
@Override
	public View getView(int position, View view, ViewGroup viewGroup) {
       if (!((RefreshListView) viewGroup).isMeasure()) {
      //处理视图      
      }else{
     //不处理
     }
}
ink_s 2016-07-29
  • 打赏
  • 举报
回复
干嘛要重写onMeasure,你是要滑动的时候上面收起来吗?那样的话你可以滑动监听,list滑动前判断上边收起来了没,如果没有收起来,先收起上边再滑动就行了吧
山城忙碌人 2016-07-29
  • 打赏
  • 举报
回复
引用 4 楼 ink_s 的回复:
对呀,viewPager只是左右划嘛,不影响的 我以前做了个viewPager+fragment+listView 我看看还在不
是重写onMeasure的原因,我注释后就没有问题了。 不知道为什么重写onMeasure后,导致listview上下滑动无效,你是否知道原因?
山城忙碌人 2016-07-29
  • 打赏
  • 举报
回复
引用 4 楼 ink_s 的回复:
对呀,viewPager只是左右划嘛,不影响的 我以前做了个viewPager+fragment+listView 我看看还在不
谢谢兄弟,我知道问题出在哪了,不是这两个冲突! 我为了处理adapter,重复调用的问题,我重写了listView的onMeasure,onLayout方法,我把这两个方法注释后,就能正常滑动了。不过我还要解决为什么重写这两个方法,会导致滑动无效的问题
ink_s 2016-07-29
  • 打赏
  • 举报
回复
对呀,viewPager只是左右划嘛,不影响的 我以前做了个viewPager+fragment+listView 我看看还在不
山城忙碌人 2016-07-29
  • 打赏
  • 举报
回复
引用 2 楼 ink_s 的回复:
fragment里的listview可以正常滑动的呀
亲,是viewPager+fragment+listView我这边一直冲突
ink_s 2016-07-29
  • 打赏
  • 举报
回复
fragment里的listview可以正常滑动的呀
ink_s 2016-07-29
  • 打赏
  • 举报
回复
这不冲突啊,

80,471

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧