Java 与构造函数调用相关的错误。以及参数的传递
我正在尝试在android中为我的recyclerview定制布局管理器。名为CustomLinearLayoutManager。并试图将其构造函数和类调用到我的主片段中。但失败了。还有一些错误 CustomLinearLayoutManager类Java 与构造函数调用相关的错误。以及参数的传递,java,android-studio,android-recyclerview,Java,Android Studio,Android Recyclerview,我正在尝试在android中为我的recyclerview定制布局管理器。名为CustomLinearLayoutManager。并试图将其构造函数和类调用到我的主片段中。但失败了。还有一些错误 CustomLinearLayoutManager类 public class CustomLinearLayoutManager extends LinearLayoutManager { public CustomLinearLayoutManager (Context context)
public class CustomLinearLayoutManager extends LinearLayoutManager {
public CustomLinearLayoutManager (Context context) {
super(context);
}
public CustomLinearLayoutManager(Context context, int orientation, boolean reverseLayout) {
super(context, orientation, reverseLayout);
}
public CustomLinearLayoutManager(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
}
@Override
public void smoothScrollToPosition(RecyclerView recyclerView, RecyclerView.State state, int position) {
final LinearSmoothScroller linearSmoothScroller =
new LinearSmoothScroller(recyclerView.getContext()) {
private static final float MILLISECONDS_PER_INCH = 200f;
@Override
public PointF computeScrollVectorForPosition(int targetPosition) {
return CustomLinearLayoutManager.this
.computeScrollVectorForPosition(targetPosition);
}
@Override
protected float calculateSpeedPerPixel
(DisplayMetrics displayMetrics) {
return MILLISECONDS_PER_INCH / displayMetrics.densityDpi;
}
};
linearSmoothScroller.setTargetPosition(position);
startSmoothScroll(linearSmoothScroller);
}
}
家庭碎片
CustomLinearLayoutManager customLinearLayoutManager = new CustomLinearLayoutManager(getContext());
customLinearLayoutManager.smoothScrollToPosition();
recyclerViewHeaderSlider = view.findViewById(R.id.bannerSlider);
SnapHelper snapHelper = new PagerSnapHelper();
snapHelper.attachToRecyclerView(recyclerViewHeaderSlider);
recyclerViewHeaderSlider.setHasFixedSize(true);
recyclerViewHeaderSlider.setLayoutManager(new LinearLayoutManager(getActivity(), LinearLayoutManager.HORIZONTAL, false));
headerSliderAdapter.setOnClick(this);
recyclerViewHeaderSlider.setAdapter(headerSliderAdapter);
我面临的错误
public CustomLinearLayoutManager(Context context, int orientation, boolean reverseLayout) {
super(context, orientation, reverseLayout);
}
Error: Constructor 'CustomLinearLayoutManager(android.content.Context, int, boolean)' is never used
public CustomLinearLayoutManager(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
}
Error: Constructor 'CustomLinearLayoutManager(android.content.Context, android.util.AttributeSet, int, int)' is never used
在主片段中:
customLinearLayoutManager.smoothScrollToPosition();
Error: smoothScrollToPosition() in CustomLinearLayoutManager cannot be
applied to:
Expected Parameters: Actual Arguments:
recyclerView: RecyclerView
state: State
position: int
首先,如果您定义了这些构造函数,但没有使用它们,那么: 错误:从未使用构造函数“CustomLinearLayoutManager(android.content.Context,android.util.AttributeSet,int,int)” 这根本不是一个错误。这是一个
警告
,因为它从未使用过
其次,如果调用方法,请确保正确添加了参数,否则将显示此消息
错误:CustomLinearLayoutManager中的smoothScrollToPosition()无法应用于:预期参数:实际参数:
然后您应该通过添加以下内容调用此方法smoothScrollToPosition(RecyclerView RecyclerView,RecyclerView.State State,int-position)
:
第一个参数:对象为回收视图
第二个参数:枚举为RecyclerView.State
第三个参数:作为整数的位置