Как установить горизонтальную прокрутку с отображением следующих и предыдущих данных в RecyclerView - PullRequest
0 голосов
/ 11 ноября 2018

В моем приложении я хочу использовать recyclerView для показа специальных данных, а для этого я хочу использовать recyclerview с горизонтальным прокруткой с показом далее и предыдущим данные.
например, баннер и ниже изображение : введите описание ссылки здесь

Как я могу использовать LayoutManager для этого?

Для этого я знаю, что должен использовать Горизонтальный в LinearLayout. но я не знаю, как я могу показать следующие и предыдущие данные

Пожалуйста, не дайте мне отрицательных баллов и, пожалуйста, помогите мне.

1 Ответ

0 голосов
/ 11 ноября 2018

Предполагается, что вам нужно показывать только один полный элемент за раз и 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);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...