我有一个项目列表,该项目列表显示在RecyclerView
和LinearLayoutManager
中。
现在,我想以编程方式在特定位置“冻结”滚动,以使用户无法再手动滚动。
我可以使用linearLayoutManager.scrollToPosition(position);
滚动到某个位置
编辑:它应该冻结在底部,因此用户无法向下滚动。向上滚动很好,但必须限制向下滚动。
如何禁用滚动或至少不能使用户滚动超出给定位置?
感谢您的帮助!
答案 0 :(得分:0)
我还没有尝试使其工作。但这是我的建议:
1。您应该覆盖Import math
Angle = input("Enter angle:")
Force = input("Enter applied force:")
X = math.cos(angle)
Y = x * force
Print("The x component of the applied force is", y)
B = math.cos(angle)
A = b * force
Print("The y component of the applied force is", A)
:
LinearLayoutManager
2。听您的滚动事件以确定上/下滚动事件:
linearLayoutManager = new LinearLayoutManager(context) {
@Override
public boolean canScrollVertically() {
return isScrollable(); // your custom method
}
};
});
3。使用mRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
if (dy > 0) {
// Scrolling up
} else {
// Scrolling down
}
}
@Override
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
super.onScrollStateChanged(recyclerView, newState);
if (newState == AbsListView.OnScrollListener.SCROLL_STATE_FLING) {
// Do something
} else if (newState == AbsListView.OnScrollListener.SCROLL_STATE_TOUCH_SCROLL) {
// Do something
} else {
// Do something
}
}
检查它是否在阈值位置,并在linearLayoutManager.findFirstVisibleItemPosition()
中向下滚动以启用/禁用滚动。