SwipeRefreshLayout-垂直滚动不';将android版本切换到v21时无法工作
当用户在寻呼机内滚动时,MyViewPager必须垂直滚动。 这是在android版本19中工作的,现在我已经将android版本更新到了v21,我得到的是一个刷新球。我可以使球隐形,但寻呼机仍然没有滚动 这是我的主要任务:content.xmlSwipeRefreshLayout-垂直滚动不';将android版本切换到v21时无法工作,android,android-viewpager,swiperefreshlayout,Android,Android Viewpager,Swiperefreshlayout,当用户在寻呼机内滚动时,MyViewPager必须垂直滚动。 这是在android版本19中工作的,现在我已经将android版本更新到了v21,我得到的是一个刷新球。我可以使球隐形,但寻呼机仍然没有滚动 这是我的主要任务:content.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:lay
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<android.support.v4.widget.SwipeRefreshLayout
android:layout_below="@id/pull_text_layout"
android:id="@+id/refresh"
android:layout_width="match_parent"
android:layout_height="205dp">
<com.pager.MyViewPager
android:id="@+id/pager"
android:layout_marginTop="5dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/white">
</com.pager.MyViewPager>
</android.support.v4.widget.SwipeRefreshLayout>
这是MyViewPager
public class MyViewPager extends ViewPager {
private boolean paginationEnabled = true,
scrolling = false;
private int scrolled;
private ScrollListener listener;
public MyViewPager(Context context) {
super(context);
}
public MyViewPager(Context context, AttributeSet attr) {
super(context, attr);
}
@Override
public boolean onInterceptTouchEvent(MotionEvent e) {
if (!paginationEnabled) {
return false;
} else {
int action = e.getAction();
if (scrolling && (action == MotionEvent.ACTION_UP || action == MotionEvent.ACTION_CANCEL)) {
scrolling = false;
if (listener != null) {
listener.onScrollFinished();
}
if(scrolling)
{}
}
return super.onInterceptTouchEvent(e);
}
}
public void setPaginationEnabled(boolean paginationEnabled) {
this.paginationEnabled = paginationEnabled;
}
public void setListener(ScrollListener listener) {
this.listener = listener;
}
@Override
protected void onScrollChanged(int l, int t, int oldl, int oldt) {
super.onScrollChanged(l, t, oldl, oldt);
scrolling = true;
if (listener != null) {
listener.onScrollStarted();
}
}
public interface ScrollListener {
public void onScrollStarted();
public void onScrollFinished();
}
}
最后,我使用了一个自定义组件来使用垂直滚动。文件如下:
public class MyViewPager extends ViewPager {
private boolean paginationEnabled = true,
scrolling = false;
private int scrolled;
private ScrollListener listener;
public MyViewPager(Context context) {
super(context);
}
public MyViewPager(Context context, AttributeSet attr) {
super(context, attr);
}
@Override
public boolean onInterceptTouchEvent(MotionEvent e) {
if (!paginationEnabled) {
return false;
} else {
int action = e.getAction();
if (scrolling && (action == MotionEvent.ACTION_UP || action == MotionEvent.ACTION_CANCEL)) {
scrolling = false;
if (listener != null) {
listener.onScrollFinished();
}
if(scrolling)
{}
}
return super.onInterceptTouchEvent(e);
}
}
public void setPaginationEnabled(boolean paginationEnabled) {
this.paginationEnabled = paginationEnabled;
}
public void setListener(ScrollListener listener) {
this.listener = listener;
}
@Override
protected void onScrollChanged(int l, int t, int oldl, int oldt) {
super.onScrollChanged(l, t, oldl, oldt);
scrolling = true;
if (listener != null) {
listener.onScrollStarted();
}
}
public interface ScrollListener {
public void onScrollStarted();
public void onScrollFinished();
}
}