解決ScrollView巢狀ViewPager出現的滑動衝突問題
很簡單,只需要重寫ScrollView就可以了
import android.content.Context;
import android.util.AttributeSet;
import android.view.GestureDetector;
import android.view.GestureDetector.SimpleOnGestureListener;
import android.view.MotionEvent;
import android.view.View;
import android.widget.ScrollView;
/**重寫ScrollView
* 解決ScrollView巢狀ViewPager出現的滑動衝突問題
* @date 2014-7-17 上午11:04:22
* @author ZhangYi
*
*/
public class MyScrollView extends ScrollView {
private boolean canScroll;
private GestureDetector mGestureDetector;
View.OnTouchListener mGestureListener;
public MyScrollView(Context context, AttributeSet attrs) {
super(context, attrs);
mGestureDetector = new GestureDetector(new YScrollDetector());
canScroll = true;
}
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
if(ev.getAction() == MotionEvent.ACTION_UP)
canScroll = true;
return super.onInterceptTouchEvent(ev) && mGestureDetector.onTouchEvent(ev);
}
class YScrollDetector extends SimpleOnGestureListener {
@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
if(canScroll)
if (Math.abs(distanceY) >= Math.abs(distanceX))
canScroll = true;
else
canScroll = false;
return canScroll;
}
}
}
Xml呼叫自定義ScrollView方法
把原來的ScrollView元件名字換成 包名.MyScrollView 就可以了
<com.zy.myview.ScrollView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:scrollbars="none"
>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="top"
android:orientation="vertical" >
........
遇到同問題得試試吧
相關文章
- ScrollView巢狀RecyclerView滑動衝突相關問題View巢狀
- 完美解決ScrollView巢狀ListView滑動衝突(有圖有真相)View巢狀
- 解決ScrollView巢狀RecyclerView滑動卡頓問題View巢狀
- 一種巢狀滑動衝突的解決方案巢狀
- 巢狀UIScrollview的滑動衝突解決方案巢狀UIView
- scrollview 的滑動衝突 viewpager等都適用Viewpager
- 一種非巢狀滑動衝突的解決方案巢狀
- 解決Flutter的ListView巢狀ListView滑動衝突以及無限高度問題FlutterView巢狀
- ScrollView 與ListView 滑動衝突解決View
- 解決 ScrollView 巢狀 RecyclerView 時,慣性滑動失效的問題View巢狀
- PtrClassicFrameLayout與viewpager橫向滑動衝突的問題Viewpager
- 巢狀ScrollView問題解決思路巢狀View
- RecyclerView 、ViewPager 左右滑動衝突Viewpager
- Android -下拉重新整理,ViewPager和ScrollView巢狀滾動問題解決方案AndroidViewpager巢狀
- 【Android ViewPager】解決ViewPager巢狀時在API 13及其以下版本中不能滑動的問題AndroidViewpager巢狀API
- Scrollview 和 內部 recycleview 高度固定時巢狀衝突的一種解決方法View巢狀
- 四種方案解決ScrollView巢狀ListView問題View巢狀
- iOS 側滑返回手勢與Scrollview衝突的解決辦法iOSView
- 重寫ListView解決ListView內部ViewPaper滑動事件衝突問題View事件
- 解決app中多語音出現的衝突問題APP
- NestedScrollView巢狀RecyclerView時滑動不流暢問題的解決辦法View巢狀
- JAR衝突問題的解決JAR
- react native ScrollView巢狀WebView 互動問題React Native巢狀WebView
- git 解決版本衝突問題Git
- Android View 滑動衝突解決方式以及原理AndroidView
- GO 問題之多版本衝突解決Go
- ScrollView巢狀ListView解決辦法以及原理View巢狀
- Android觸控事件傳遞機制及viewpager巢狀fragment衝突處理Android事件Viewpager巢狀Fragment
- ViewPager 禁止左右滑動完美解決Viewpager
- Android事件分發機制、滑動衝突解決Android事件
- 從原理上說說ScrollView巢狀ListView的問題View巢狀
- Maven中解決依賴衝突的問題Maven
- 解決 ViewPager 巢狀導致的 Fragment 選單錯亂Viewpager巢狀Fragment
- 如解決jquery與原生js衝突的問題jQueryJS
- kotlin語言:解決drawerLayout與viewpager的衝突、NavigationView側滑裡面menu的點選事件KotlinViewpagerNavigation事件
- RecyclerView與下拉重新整理控制元件滑動衝突的解決View控制元件
- 【Android Fragment】解決ViewPager巢狀時Fragment的mUserVisibleHint屬性不同步的問題AndroidFragmentViewpager巢狀
- ScrollView中用ListView的事件衝突View事件