Java 在安卓系统的平滑滚动程序中达到目标
我有一个水平抑制回收视图,一旦用户单击一个答案,它就会平滑地滚动到下一个答案 ,虽然我想在平滑滚动仍在进行时防止点击 我使用了一个处理程序,并经历了多次尝试和错误,直到我将其用于手机,Java 在安卓系统的平滑滚动程序中达到目标,java,android,android-recyclerview,android-linearlayout,smooth-scrolling,Java,Android,Android Recyclerview,Android Linearlayout,Smooth Scrolling,我有一个水平抑制回收视图,一旦用户单击一个答案,它就会平滑地滚动到下一个答案 ,虽然我想在平滑滚动仍在进行时防止点击 我使用了一个处理程序,并经历了多次尝试和错误,直到我将其用于手机, 然而,它并不实用,也不适用于所有手机 public void setSmoothScroller(final float speed){ smoothScroller = new LinearSmoothScroller(getApplicationContext()) {
然而,它并不实用,也不适用于所有手机
public void setSmoothScroller(final float speed){
smoothScroller = new LinearSmoothScroller(getApplicationContext()) {
private final float SPEED = speed;
@Override
protected float calculateSpeedPerPixel(DisplayMetrics displayMetrics) {
return SPEED / displayMetrics.densityDpi;
}
};
}
试图解释可能会很复杂,但我所需要的不是使用处理程序再次启用触摸,有没有办法让它在到达特定位置时自动执行功能
@Override
public void onAnswered(final int position) {
if (answered < bank){
handler.postDelayed(new Runnable() {
@Override
public void run() {
scrollingState = true;
recyclerView.suppressLayout(true);
setSmoothScroller(300f);
smoothScroller.setTargetPosition(position + 1);
layoutManager.startSmoothScroll(smoothScroller);
}
}, 1000);
handler.postDelayed(new Runnable() {
@Override
public void run() {
enableTouch();
}
}, 3150);
}
}
@覆盖
未回答的公共无效(最终int位置){
如果(回答<银行){
handler.postDelayed(新的Runnable(){
@凌驾
公开募捐{
scrollingState=true;
recyclerView.suppressLayout(真);
设置摩尔滚动器(300f);
smoothScroller.setTargetPosition(位置+1);
layoutManager.startSmoothScroll(smoothScroller);
}
}, 1000);
handler.postDelayed(新的Runnable(){
@凌驾
公开募捐{
enableTouch();
}
}, 3150);
}
}
请上传您的相关代码,如何实现平滑滚动我刚刚编辑了它,请看一看,很抱歉我不能提供更多的代码,但这是因为它确实是一个大项目使用平滑滚动位置
进行平滑滚动