NestedScrollView onClick事件不能正常工作
2017-04-27 16:18
369 查看
问 题
我用NestedScrollView与CoordinatorLayout,使滚动动画工具栏。(由应用程序:layout_scrollFlags =“滚动| enterAlways”)
NestedScrollView包含的LinearLayout作为根的孩子,我把2 TextViews到LinearLayout中,使展开/折叠动画。一个设置可见 而另一个被设置为不见了。而通过的LinearLayout的onClick事件切换的知名度。
通常情况下,一切都按预期方式工作,但是当我滚动的NestedScrollView onClick事件不能正常工作。我需要滚动后双击即可得到展开/折叠动画
有没有人有同样的问题我吗?请帮我
//处理事件
解决方案
这是NestedScrollView的一个bug,该bug的详细信息可以在这里找到:的问题。问题是,
mScroller.isFinished()在 onInterceptTouchEvent(MotionEvent EV)将不会返回真正的后一扔操作(即使一扔已停止)。因此,触摸事件截获。
这个错误已经报道了一段时间,但仍然没有得到解决。所以我通过自己的版本的bug修复这个问题产生。我实现了我自己的 NestedScrollView ,复制所有的code从 NestedScrollView ,并具有与如下修改:
和本 NestedScrollView 应具有相同的行为与原来的。
我用NestedScrollView与CoordinatorLayout,使滚动动画工具栏。(由应用程序:layout_scrollFlags =“滚动| enterAlways”)
NestedScrollView包含的LinearLayout作为根的孩子,我把2 TextViews到LinearLayout中,使展开/折叠动画。一个设置可见 而另一个被设置为不见了。而通过的LinearLayout的onClick事件切换的知名度。
通常情况下,一切都按预期方式工作,但是当我滚动的NestedScrollView onClick事件不能正常工作。我需要滚动后双击即可得到展开/折叠动画
有没有人有同样的问题我吗?请帮我
< android.support.design.widget.CoordinatorLayout的xmlns:机器人=“http://schemas.android.com/apk/res/android” 的xmlns:程序=“http://schemas.android.com/apk/res-auto” 机器人:layout_width =“match_parent” 机器人:layout_height =“match_parent”> < android.support.v4.widget.NestedScrollView 机器人:layout_width =“match_parent” 机器人:layout_height =“match_parent” 应用程序:layout_behavior =“@字符串/ appbar_scrolling_view_behavior”> <的LinearLayout 机器人:layout_width =“match_parent” 机器人:layout_height =“match_parent” 机器人:方向=“垂直” 机器人:paddingBottom会=“98dp” 机器人:以下属性来=“24dp” 机器人:paddingRight =“24dp”> < android.support.v7.widget.AppCompatTextView 机器人:ID =“@ + ID / detail_expense_reason_trim” 机器人:layout_width =“match_parent” 机器人:layout_height =“WRAP_CONTENT” 机器人:单线=“假” 机器人:文字颜色=“@色/ add_new_expense_text_color”/> < android.support.v7.widget.AppCompatTextView 机器人:ID =“@ + ID / detail_expense_reason” 机器人:layout_width =“match_parent” 机器人:layout_height =“WRAP_CONTENT” 机器人:单线=“假” 机器人:文字颜色=“@色/ add_new_expense_text_color” 机器人:能见度=“水涨船高”/> < / LinearLayout中> < /android.support.v4.widget.NestedScrollView> < android.support.design.widget.AppBarLayout 机器人:layout_width =“match_parent” 机器人:layout_height =“WRAP_CONTENT”> < android.support.v7.widget.Toolbar 机器人:ID =“@ + ID / detail_expense_toolbar” 机器人:layout_width =“match_parent” 机器人:layout_height =“?ATTR / actionBarSize” 机器人:主题=“@风格/ ThemeOverlay.AppCompat.Dark.ActionBar” 应用程序:layout_scrollFlags =“滚动| enterAlways” 应用程序:popupTheme =“@风格/ ThemeOverlay.AppCompat.Light”/> < /android.support.design.widget.AppBarLayout>
@InjectView(R.id.detail_expense_reason) AppCompatTextView originalReason; @InjectView(R.id.detail_expense_reason_trim) AppCompatTextView trimReason; @InjectView(R.id.detail_expense_container) 的LinearLayout expenseContainer;
//处理事件
公共无效的onClick(){ 如果(originalReason.getVisibility()== View.VISIBLE){ originalReason.setVisibility(View.GONE); trimReason.setVisibility(View.VISIBLE); } 其他 { originalReason.setVisibility(View.VISIBLE); trimReason.setVisibility(View.GONE); } }
解决方案
这是NestedScrollView的一个bug,该bug的详细信息可以在这里找到:的问题。问题是,
mScroller.isFinished()在 onInterceptTouchEvent(MotionEvent EV)将不会返回真正的后一扔操作(即使一扔已停止)。因此,触摸事件截获。
这个错误已经报道了一段时间,但仍然没有得到解决。所以我通过自己的版本的bug修复这个问题产生。我实现了我自己的 NestedScrollView ,复制所有的code从 NestedScrollView ,并具有与如下修改:
公共类NestedScrollView扩展的FrameLayout实现NestedScrollingParent,NestedScrollingChild { ... 私人无效initScrollView(){ ... //替换这行: // mScroller =新ScrollerCompat(的getContext(),NULL); mScroller = ScrollerCompat.create(的getContext(),NULL); ... } @覆盖 公共布尔onInterceptTouchEvent(MotionEvent EV){ ... 开关(行动及放大器; MotionEventCompat.ACTION_MASK){ ... 案例MotionEvent.ACTION_DOWN:{ ... //替换这行: // mIsBeingDragged = mScroller.isFinished()!; mIsBeingDragged = FALSE; ... } } } }
和本 NestedScrollView 应具有相同的行为与原来的。
相关文章推荐
- 简说一下coffeescript的constructor是如何导致Backbone.View的事件无法正常工作的.
- 解决NestedScrollView中,在子View上滑动不触发滚动事件,却触发点击事件
- View的OnTouch和OnClick事件不能并存问题
- nestedscrollview 中加载 webview 内容不能正常显示,Toolbar有警告
- SystemParametersInfo ( SPI_GETNONCLIENTMETRICS... 在VC 2008 里不能正常工作
- RMS 在 office 2003 中不能正常工作 Critical RMS issue with Office 2003 打附件中提供的补丁。http://download.csdn.net/source/1899262
- ClassView 不能正常显示
- SystemParametersInfo ( SPI_GETNONCLIENTMETRICS... 在VC 2008 里不能正常工作
- Infragistics NetAdvantage 的 ASP.NET部分控件在IE7.0下不能正常工作的问题及解决
- jQuery 1.4.2 getJSON() 不能正常工作的原因
- IIS 7动态压缩引起CuteEditor在IE 6中不能正常工作 我这里IE 78都不行
- Gif图片在提交时,在IE中不能正常工作
- Log4Net本地正常,发布到服务器却不能工作
- 带动画的GIF图片在IE中不能正常工作
- SystemParametersInfo ( SPI_GETNONCLIENTMETRICS... 在VC 2008 里不能正常工作
- 移植 android, touch screen 不能正常工作的问题。
- TimerTask在遇到修改系统时间不能正常工作,自己写一个简单的TimerTask和Timer
- 让Reflector不能正常工作
- dropdownlist外套UpdatePanel,selectchanged事件不能正常触发的解决办法
- 移植 android, touch screen 不能正常工作的问题