0
我正在創建老虎機應用程序,爲此我使用RecycleView
作爲導軌。因此,對於RecyclerView
,所有touch \ click \ scroll事件都被禁用。RecyclerView - 觸摸後禁用甩尾止損
爲了使「旋轉」我用RecyclerView.fling(...)
方法,因爲它有更好的動畫。
但是當我觸摸回收站視圖時,突然停止扔掉。 爲什麼?我該如何禁用它?
XML:
<android.support.v7.widget.RecyclerView
android:id="@+id/rv_rail"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginLeft="@dimen/margin_4"
android:layout_marginStart="@dimen/margin_4"
android:layout_weight="1"
android:padding="@dimen/dp_16"/>
RecyclerView的初始化:
LinearLayoutManager mRailLayoutManager = new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false);
mRailsBinding.rvRail.setHasFixedSize(true);
new LinearSnapHelper().attachToRecyclerView(mRailsBinding.rvRail);
mRailsBinding.rvRail.setLayoutManager(mRailLayoutManager);
mRailsBinding.rvRail.addOnItemTouchListener(new RecyclerViewDisabler());
mRailsBinding.rvRail.addOnScrollListener(railScrollListener); //checking here for time when scroll ended
mRailsBinding.rvRail.setAdapter(mRailAdapter);
適配器沒有什麼特別之處。它只是在視圖中,並沒有點擊\ touch evenets。
RecyclerViewDisabler:
public class RecyclerViewDisabler implements RecyclerView.OnItemTouchListener {
@Override
public boolean onInterceptTouchEvent(RecyclerView rv, MotionEvent e) {
return true;
}
@Override
public void onTouchEvent(RecyclerView rv, MotionEvent e) {}
@Override
public void onRequestDisallowInterceptTouchEvent(boolean state) {}
}