Предполагается, что вам нужно показывать только один полный элемент за раз и 2 частичных элемента с обеих сторон. Вы можете использовать snaphelper
, чтобы привязать recylerview к ближайшей позиции элемента для получения желаемого эффекта. И измените ширину вашего элемента в представлении переработчика следующим образом. Вам нужно передать ссылку recyclerView
внутри адаптера, чтобы получить ширину.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
recyclerView = findViewById(R.id.recyclerView);
recyclerView.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false));
final SnapHelper snapHelper = new PagerSnapHelper();
snapHelper.attachToRecyclerView(recyclerView);
}
и в вашем onCreateViewHolder
измените ширину вашего элемента.
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int i) {
final View view =
LayoutInflater.from(parent.getContext())
.inflate(R.layout.your_view, parent, false);
// recyclerView is your passed view.
int width = recyclerView.getWidth();
ViewGroup.LayoutParams params = view.getLayoutParams();
params.width = (int)(width * 0.8);
view.setLayoutParams(params);
return new YourViewHolder(view);
}