Отличать элементы от списка массивов в адаптере представления корзины - PullRequest
0 голосов
/ 29 апреля 2019

Я хочу отображать ленту, как Instagram, я использую 2 макета для этого.Используя просмотр корзины в этом адаптере, я проверяю тип просмотра для нескольких изображений или одного изображения, для нескольких изображений я использую пейджер просмотра.

@Override
    public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {

        View view;
        switch (viewType) {
            case ModelUser.VIEW_PAGER:
                view = LayoutInflater.from(parent.getContext()).inflate(R.layout.feed_multi_photo, parent, false);
                return new TextTypeViewHolder(view);
            case ModelUser.IMAGE_TYPE:
                view = LayoutInflater.from(parent.getContext()).inflate(R.layout.feed_photo, parent, false);
                return new ImageTypeViewHolder(view);
        }
        return null;


    }

@Override
    public void onBindViewHolder(final RecyclerView.ViewHolder holder, final int listPosition) {

        ModelUser object = dataSet.get(listPosition);
        if (object != null) {
            switch (object.type1) {
                case ModelUser.VIEW_PAGER:

                    final SliderPagerAdapter sliderPagerAdapter = new SliderPagerAdapter((Activity) mContext, slider_image_list);
                    ((TextTypeViewHolder) holder).mvViewPager.setAdapter(sliderPagerAdapter);

                    ((TextTypeViewHolder) holder).mvViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
                        @Override
                        public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

                        }

                        @Override
                        public void onPageSelected(int position) {
                            addBottomDots(position, ((TextTypeViewHolder) holder).ll_dots);
                            page = position;
                        }

                        @Override
                        public void onPageScrollStateChanged(int state) {

                        }
                    });

При настройке данных адаптера я использую

 MultiViewTypeAdapter feedMainAdapter = new MultiViewTypeAdapter(feed_list,imagelist,context);
                                        RecylerFeed.setAdapter(feedMainAdapter);

feed_list для одного изображения и imagelist для мультиизображений, поэтому моя проблема в том, что imagelist я получаю список всех изображений, как я могу выделить эти изображения для конкретного пользователя?

Ответы [ 2 ]

0 голосов
/ 29 апреля 2019

моя проблема в списке изображений, я получаю список всех изображений

Потому что, передавая slider_image_list в SliderPagerAdapter, который содержит все пользовательские изображения.

как я могу выделить эти изображения для конкретного пользователя?

Создать новый список изображений для конкретного пользователя из slider_image_list перед передачей в ViewPager:

case ModelUser.VIEW_PAGER:
  //Create new List of images  for current user from `slider_image_list`
   ArrayList<> currentUserImages=new ArrayList<>();
   final SliderPagerAdapter sliderPagerAdapter = 
               new SliderPagerAdapter((Activity) mContext, currentUserImages);

  ....
 break;
0 голосов
/ 29 апреля 2019

Добавить RecyclereView в

feed_multi_photo

А внутри onBindViewHolder

    switch (object.type1) {
                    case ModelUser.VIEW_PAGER:
   //Impement Nested RecyclerAdapter of Multiple Image using imagelist


     InnerRecyclerviewAdapter adapter=new InnerRecyclerviewAdapter(context,imagelist);
     holder.recyclerView.setAdapter(adapter);
     holder.recyclerView.setHasFixedSize(true);
     LinearLayoutManager layoutManager = new LinearLayoutManager(context, LinearLayoutManager.HORIZONTAL, false);
     recyclerView.setLayoutManager(layoutManager);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...