ScrollView嵌套ViewPager,ViewPage动态设置高度,嵌套事件冲突——滑动冲突解决方法

1、创建自定义ViewPager

 

public class ViewPagerForScrollView extends ViewPager {int myh=0 ;boolean ifme =false;public ViewPagerForScrollView(Context context) {super(context);Log.i("lgq","高度==111=  " );}public ViewPagerForScrollView(Context context, AttributeSet attrs) {super(context, attrs);Log.i("lgq","高度==22==  " );TestObServernotice.getInstance().addObserver(deleteObserver);}private Observer deleteObserver = new Observer() {@Overridepublic void update(int id, int intparam, String param, Bitmap bitmap) {if (id == 111) {myh = intparam;ifme = true;}}};@Overrideprotected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {int height = 0;if (ifme){View child = getChildAt(myh);child.measure(widthMeasureSpec, MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));int h = child.getMeasuredHeight();height = h;}else {for (int i = 0; i < getChildCount(); i++) {View child = getChildAt(i);child.measure(widthMeasureSpec, MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));int h = child.getMeasuredHeight();Log.i("lgq","高度====  " +h);if (h > height)height = h;}}heightMeasureSpec = MeasureSpec.makeMeasureSpec(height, MeasureSpec.EXACTLY);
//        heightMeasureSpec = MeasureSpec.makeMeasureSpec(h, MeasureSpec.EXACTLY);super.onMeasure(widthMeasureSpec, heightMeasureSpec);}
}

2、ScrollView属性

<ScrollViewandroid:layout_width="match_parent"android:layout_height="match_parent"android:focusable="true"android:focusableInTouchMode="true">

 

3、通知刷新viewpager的高度

@Override
public void onPageSelected(int i) {mViewPager.requestLayout();TestObServernotice.getInstance().notifyObserver(111, i, "6666", null);Log.i("lgq","经理=====  "+i);
}

 

 

 实现样式

长高度内容                                                                                                                 短高度内容

  

 

实现demo:https://download.csdn.net/download/meixi_android/12390494

bug交流:qq1085220040

 

解决事件冲突方法:

自定义重写View添加如下方法

 

public void setNestedpParent(ViewGroup parent) {this.parent = parent;
}

 

    @Overridepublic boolean dispatchTouchEvent(MotionEvent event) {
//        LgqLogutil.e("分发listview2222222");if (parent != null) {parent.requestDisallowInterceptTouchEvent(true);}return super.dispatchTouchEvent(event);}

 

设置事件拦截——停止事件传递

HorizontalListView horizontalListView = holder.getView(R.id.myhoriz);
horizontalListView.setNestedpParent((ViewGroup)horizontalListView.getParent());

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/414414.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

centos7下python3与python2共存并且开启py3虚拟环境

因为下载视频需要用到python3环境&#xff0c;今天在我的win上安装下载工具死活安装不上去&#xff0c;在大盘鸡上一下就安装成功了...可能在win上不兼容吧...无奈只能在大盘鸡上进行折腾了&#xff0c;顺便几个笔记 由于大盘鸡上好多程序基于python2的&#xff0c;所以就没法直…

Unable to add window token null is not valid is your activity running

莫名其妙的报错 错误原因是不在主线程调用了弹窗方法 解决方法很简单 创建Handler static final int REFRESH_COMPLETE 0X1112; private Handler mHandler new Handler() {public void handleMessage(android.os.Message msg) {switch (msg.what) {case REFRESH_COMPLETE:Ob…

01-Flutter移动电商实战-项目学习记录

01-Flutter移动电商实战-项目学习记录 一直想系统性的学习一下 Flutter&#xff0c;正好看到该课程《Flutter移动电商实战》的百度云资源&#xff0c;共 69 课时&#xff0c;由于怕自己坚持不下去&#xff08;经常学着学着就不学了&#xff09;&#xff0c;故采用博客监督以记之…

02-Flutter移动电商实战-建立项目和编写入口文件

02-Flutter移动电商实战-建立项目和编写入口文件 环境搭建请参考之前写的一篇文章&#xff1a;Flutter_初体验_创建第一个应用 1、创建项目 采用AndroidStudio构建本项目&#xff0c;FIle>New>New Flutter Project… 创建后的项目如下图所示&#xff1a; 我们着重需要…

Android 倒计时——Timer和CountDownTimer的使用,实现启动,暂停,继续,重复,重设时长以及启动service后台倒计时

实现效果 单个倒计时功能 列表倒计时功能 自定义倒计时类 public class CountDownTimerSupport implements ITimerSupport {private Timer mTimer;private Handler mHandler;/*** 倒计时时…

03-Flutter移动电商实战-底部导航栏制作

03-Flutter移动电商实战-底部导航栏制作 1、cupertino_IOS风格介绍 在Flutter里是有两种内置风格的&#xff1a; material风格&#xff1a; Material Design 是由 Google 推出的全新设计语言&#xff0c;这种设计语言是为手机、平板电脑、台式机和其他平台提供一致&#xff…

plugin since you are using Gradle version 4.6 or above

Android studio项目在新的开发环境下打开时报错如下 解决方法如下&#xff1a; 1、目录选到Android状态 2、进入gradle.properties文件。 3、org.gradle.configureondemandfalse——————默认是true。改完false即可

[转]调试 smallcorgi/Faster-RCNN_TF 的demo过程遇到的问题

最近在调试faster R-CNN时&#xff0c;遇到了各种各样的问题。使用的算法库为https://github.com/smallcorgi/Faster-RCNN_TF 注&#xff1a;本文使用的是通过virtualenv 创建python虚拟环境进行调试&#xff0c;python 版本2.7&#xff0c;tensorflow 版本为tensorflow1.4-gpu…

04-Flutter移动电商实战-打通底部导航栏

04-Flutter移动电商实战-打通底部导航栏 关于界面切换以及底栏的实现可参考之前写的一篇文章&#xff1a;Flutter实 ViewPager、bottomNavigationBar界面切换 1、新建4个基本dart文件 在pages目录下&#xff0c;我们新建下面四个dart文件。 home_page.dart :商城首页UI页面…

【机器学习】--模型评估指标之混淆矩阵,ROC曲线和AUC面积

一、前述 怎么样对训练出来的模型进行评估是有一定指标的&#xff0c;本文就相关指标做一个总结。 二、具体 1、混淆矩阵 混淆矩阵如图&#xff1a; 第一个参数true&#xff0c;false是指预测的正确性。 第二个参数true,postitives是指预测的结果。 相关公式&#xff1a; 检测正…

05-Flutter移动电商实战-dio基础_引入和简单的Get请求

05-Flutter移动电商实战-dio基础_引入和简单的Get请求 这篇开始我们学习Dart第三方Http请求库dio&#xff0c;这是国人开源的一个项目&#xff0c;也是国内用的最广泛的Dart Http请求库。 1、dio介绍和引入 dio是一个强大的Dart Http请求库&#xff0c;支持Restful API、 Fo…

Jmeter——for循环控制器和if逻辑控制器

有时我们不仅仅需要用例按照简单的顺序跑&#xff0c;需要内嵌循环&#xff0c;或者条件分支&#xff0c;让某些用例在满足一定条件时才执行。 1、for循环控制器 此处记录两种应用的场景&#xff0c;一种是直接定义好要循环的变量&#xff0c;循环次数是固定的&#xff0c;写死…

06-Flutter移动电商实战-dio基础_Get_Post请求和动态组件协作

06-Flutter移动电商实战-dio基础_Get_Post请求和动态组件协作 上篇文章中&#xff0c;我们只看到了 dio 的使用方式&#xff0c;但并未跟应用关联起来&#xff0c;所以这一篇将 dio 网络请求与应用界面结合起来&#xff0c;当然这也是为以后的实战作基础准备&#xff0c;基础打…