SwipeRefreshLayout + ViewPager จำกัด การเลื่อนในแนวนอนเท่านั้นหรือไม่
ฉันใช้งานSwipeRefreshLayoutแล้วและViewPagerในแอปของฉัน แต่มีปัญหาใหญ่เมื่อใดก็ตามที่ฉันจะปัดไปทางซ้าย / ขวาเพื่อสลับไปมาระหว่างหน้าการเลื่อนนั้นไวเกินไป การปัดลงเล็กน้อยจะทำให้เกิดการSwipeRefreshLayoutรีเฟรชด้วย ฉันต้องการตั้งค่าขีด จำกัด เมื่อเริ่มการปัดในแนวนอนจากนั้นบังคับแนวนอนเท่านั้นจนกว่าการปัดจะสิ้นสุด กล่าวอีกนัยหนึ่งคือฉันต้องการยกเลิกการปัดในแนวตั้งเมื่อนิ้วเคลื่อนที่ในแนวนอน ปัญหานี้จะเกิดขึ้นก็ต่อViewPagerเมื่อฉันปัดลงและSwipeRefreshLayoutฟังก์ชันรีเฟรชถูกเรียกใช้ (แถบจะแสดงขึ้น) จากนั้นฉันเลื่อนนิ้วในแนวนอนก็ยังอนุญาตให้ใช้การกวาดนิ้วในแนวตั้งเท่านั้น ฉันพยายามขยายViewPagerชั้นเรียน แต่ไม่ได้ผลเลย: public class CustomViewPager extends ViewPager { public CustomViewPager(Context ctx, AttributeSet attrs) { super(ctx, attrs); } @Override public boolean onInterceptTouchEvent(MotionEvent ev) { boolean in = super.onInterceptTouchEvent(ev); if (in) { getParent().requestDisallowInterceptTouchEvent(true); this.requestDisallowInterceptTouchEvent(true); } return false; } } xml …