解决SpringView与CoordinatorLayout和AppBarLayout嵌套使用的上下滑动冲突问题
2017-11-15 18:34
363 查看
最近再做一个项目的时候,同时使用了SpringView以及CoordinatorLayout嵌套AppBarLayout的布局,在测试的时候,发现SpringView的是滑动事件与CoordinatorLayout中的滑动事件冲突。经过测试,发现可以用AppBarLayout的状态来解决此问题。
xml布局为:
Java代码为:
解决此问题的关键代码便是。根据AppBarLayout的状态来判断SpringView的事件是true还是false,当AppBarLayout处于展开状态时,SpringView的状态设置为true,当AppBarLayout状态为折叠或者正处于展开折叠的过程中时,将SpringView的状态设置为false。即以下代码:
xml布局为:
<com.gsitv.view.PullRefresh.SpringView android:id="@+id/pullrefreshlayout" android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.design.widget.CoordinatorLayout android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true"> <android.support.design.widget.AppBarLayout android:id="@+id/appbar" android:layout_width="match_parent" android:layout_height="wrap_content" android:fitsSystemWindows="true" android:orientation="vertical"> <android.support.design.widget.CollapsingToolbarLayout android:id="@+id/collapsing_layout" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" app:contentScrim="#00000000" app:layout_scrollFlags="scroll|exitUntilCollapsed" app:statusBarScrim="@color/white"> </android.support.design.widget.CollapsingToolbarLayout> <android.support.v7.widget.RecyclerView android:id="@+id/function_recycler" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_centerVertical="true" android:background="@color/white" /> </android.support.design.widget.AppBarLayout> <android.support.v4.widget.NestedScrollView android:layout_width="match_parent" android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior"> <android.support.v7.widget.RecyclerView android:id="@+id/recommend_recycler" android:layout_width="match_parent" android:layout_height="wrap_content"> </android.support.v7.widget.RecyclerView> </android.support.v4.widget.NestedScrollView> </android.support.design.widget.CoordinatorLayout> </com.gsitv.view.PullRefresh.SpringView>
Java代码为:
app_bar = (AppBarLayout) contentView.findViewById(R.id.appbar); springView = (SpringView) contentView.findViewById(R.id.pullrefreshlayout); springView.setType(SpringView.Type.FOLLOW); springView.setListener(new SpringView.OnFreshListener() { @Override public void onRefresh() { new Handler().postDelayed(new Runnable() { @Override public void run() { springView.onFinishFreshAndLoad(); } }, 1000); } @Override public void onLoadmore() { new Handler().postDelayed(new Runnable() { @Override public void run() { springView.onFinishFreshAndLoad(); } }, 1000); } }); springView.setHeader(new DefaultHeader(getActivity())); app_bar.addOnOffsetChangedListener(new AppBarLayout.OnOffsetChangedListener(){ @Override public void onOffsetChanged(AppBarLayout appBarLayout, int verticalOffset) { if(verticalOffset==0){ springView.setEnable(true); }else { springView.setEnable(false); } } });
解决此问题的关键代码便是。根据AppBarLayout的状态来判断SpringView的事件是true还是false,当AppBarLayout处于展开状态时,SpringView的状态设置为true,当AppBarLayout状态为折叠或者正处于展开折叠的过程中时,将SpringView的状态设置为false。即以下代码:
app_bar.addOnOffsetChangedListener(new AppBarLayout.OnOffsetChangedListener(){ @Override public void onOffsetChanged(AppBarLayout appBarLayout, int verticalOffset) { if(verticalOffset==0){ springView.setEnable(true); }else { springView.setEnable(false); } } });
相关文章推荐
- SwipeRefreshLayout 、RecyclerView 与 CoordinatorLayout 嵌套刷新滑动冲突的解决办法
- appbarlayout+springview+viewpager滑动冲突的问题
- 简单完美解决PullToRefreshLayout中PullableListView嵌套ViewPager时滑动冲突的问题
- 完美解决DrawerLayout全屏滑动及嵌套viewpager滑动冲突问题
- CoordinatorLayout + AppBarLayout + NestScrollView 向上滑动卡顿问题解决方案
- 一句代码解决CoordinatorLayout+AppBarLayout+NestedScrollView滑动不流畅的问题
- ScrollView和ViewPager嵌套使用(导致左右、上下滑动冲突解决方案)
- CoordinatorLayout AppBarLayout 结合下拉刷新 上拉加载更多 的滑动冲突解决
- 解决在scrollview上下滑动嵌套scrollview,viewpager水平滑动时问题
- 解决在scrollview上下滑动嵌套scrollview,viewpager水平滑动时的抖动问题
- 完美解决ScrollView嵌套ViewPager滑动失效和无法正常滑动冲突问题
- listview 与 viewpager嵌套使用滑动冲突问题
- 解决在scrollview上下滑动嵌套scrollview,viewpager水平滑动时的抖动问题
- 解决ScrollView嵌套ViewPager出现的滑动冲突问题
- 解决ScrollView嵌套ViewPager出现的滑动冲突问题
- android 布局 使用 viewPager 时,如何解决 和 子页面 长按滑动 冲突问题
- 解决NestedScrollView 嵌套 RecyclerView出现的滑动冲突问题
- 解决ListView嵌套在ScrollerView中显示不全以及滑动冲突的问题
- Android ScrollView中嵌套ListView,滑动冲突问题的解决
- 解决ScrollView嵌套ViewPager出现的滑动冲突问题