为了账号安全,请及时绑定邮箱和手机立即绑定

如何禁用RecyclerView滚动?

如何禁用RecyclerView滚动?

烙印99 2019-10-26 10:51:05
我无法禁止在中滚动RecyclerView。我尝试打电话,rv.setEnabled(false)但仍然可以滚动。如何禁用滚动?
查看完整描述

3 回答

?
慕森王

TA贡献1777条经验 获得超3个赞

REAL REAL的答案是: 对于API 21和更高版本:


无需Java代码。 您可以android:nestedScrollingEnabled="false" 在xml中设置 :


<android.support.v7.widget.RecyclerView

     android:id="@+id/recycler"

     android:layout_width="match_parent"

     android:layout_height="wrap_content"

     android:clipToPadding="true"

     android:nestedScrollingEnabled="false"

     tools:listitem="@layout/adapter_favorite_place">


查看完整回答
反对 回复 2019-10-26
?
慕虎7371278

TA贡献1802条经验 获得超4个赞

这有点棘手,但可行。您可以在中启用/禁用滚动RecyclerView。


这是一次空洞的RecyclerView.OnItemTouchListener窃取,每一次触摸事件都会使目标无效RecyclerView。


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 disallowIntercept) {


    }

}

使用它:


RecyclerView rv = ...

RecyclerView.OnItemTouchListener disabler = new RecyclerViewDisabler();


rv.addOnItemTouchListener(disabler);        // disables scolling

// do stuff while scrolling is disabled

rv.removeOnItemTouchListener(disabler);     // scrolling is enabled again 


查看完整回答
反对 回复 2019-10-26
  • 3 回答
  • 0 关注
  • 6807 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信