getItemViewType возвращается только в onBindViewHolder, но не в onCreateViewHolder

вы можете использовать

$('.buttons').on('click', 'button', function(){
    // your magic goes here
});

или

$('.buttons').delegate('button', 'click', function() {
    // your magic goes here
});

, эти два метода эквивалентны, но имеют другой порядок параметров.

см .: Событие делегата jQuery

0
задан ישו אוהב אותך 28 March 2019 в 02:31
поделиться

1 ответ

Проблема, вероятно, в том, что вы перепроверяете для itemViewType с getItemViewType(i)); внутри onCreateViewHolder. Вы не должны этого делать, потому что onCreateViewHolder уже предоставляет вам itemViewType из его параметров. И вы должны использовать регистр переключателя вместо if ? :, чтобы сделать ваш код более читабельным.

Итак, измените свой код на что-то вроде этого:

@Override
public HorizontalViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {

    int layoutId;
    switch(viewType) {
       case 0:
         layoutId = R.layout.item_category_slider_viewed;
       break;
       case 1:
         layoutId = R.layout.item_category_slider_added;
       break;
       case 2:
         layoutId = R.layout.item_category_slider_browse_all;
       break;
       default:
         layoutId = R.layout.item_category_slider_regular;

    }

    View cardView = LayoutInflater.from(parent.getContext()).inflate(
                    layoutId, parent, false);

    return new HorizontalViewHolder(cardView, context);
}
0
ответ дан ישו אוהב אותך 28 March 2019 в 02:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: