Использование пейджера просмотра в строке просмотра ресайклера?

В моем приложении я использую пейджер представления фрагментов в строках представления ресайклера. Я делаю это, чтобы отобразить основное содержимое в первом фрагменте, а затем контейнер фрагмента и кнопку удаления в качестве второго фрагмента. По какой-то причине, когда я запускаю свое приложение, мой пейджер работает только в первой строке. Кто-нибудь знает, что может быть причиной этого? Я пробовал использовать несколько статических строк, но это работает только в первой. Это мой код адаптера представления recycler:

  • Может быть важно отметить, что представление, в котором содержится это представление переработчика, является частью другого пейджера представления, расположенного внутри фрагмента.

    public class FeaturesListAdapter extends RecyclerView.Adapter<FeaturesListAdapter.ViewHolder> {
    
    public static final int NULL = -1;
    
    public static final int NUMBER_OF_FEATURES = 2;
    
    public static class ViewHolder extends RecyclerView.ViewHolder{
    
        RelativeLayout root;
        ViewPager viewPager;
    
        public ViewHolder(RelativeLayout container, SampleActivity activity) {
            super(container);
    
            root = container;
            viewPager = (ViewPager) container.findViewById(R.id.view_pager);
            viewPager.setAdapter(new FeatureCellPagerAdapter(activity.getSupportFragmentManager(), activity));
            viewPager.setCurrentItem(0);
        }
    }
    
    final SampleActivity mActivity;
    
    public FeaturesListAdapter(SampleActivity activity) {
        mActivity = activity;
    }
    
    @Override
    public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
        View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.view_holder_features_list, viewGroup, false);
        return new ViewHolder((RelativeLayout) view, mActivity);
    }
    
    @Override
    public void onBindViewHolder(ViewHolder viewHolder, int i) {
    }
    
    @Override
    public int getItemViewType(int position) {
        return NULL;
    }
    
    
    @Override
    public int getItemCount() {
        return NUMBER_OF_FEATURES;
    }
    

    }


person Community    schedule 25.04.2016    source источник
comment
Вы говорите, что ваш recyclerView и фрагменты содержатся в другом фрагменте, я думаю, вам нужно использовать getChildFragmentManager(). Итак, вместо нового FeatureCellPagerAdapter(activity.getSupportFragmentManager(), activity)); попробуйте с новым FeatureCellPagerAdapter(yourOuterFragment.getChildFragmentManager(), activity));   -  person ElDuderino    schedule 25.04.2016
comment
Я увидел это сразу после публикации, хотя я только что попробовал, и это не сработало.   -  person    schedule 25.04.2016
comment
Я также попытался добавить около 20 просмотров, и он применяет просмотр пейджера к первому видимому фрагменту, но не ко всем из них.   -  person    schedule 25.04.2016
comment
Да, я только что проверил это и получил те же результаты, только в первой строке есть просмотрщик с фрагментами. И у меня нет внешнего фрагмента, так что это не причина.   -  person ElDuderino    schedule 25.04.2016
comment
может быть проблема с моим xml?   -  person    schedule 25.04.2016
comment
У меня та же проблема. Ты уже решил это @TeddyWilson?   -  person Linh Nguyen    schedule 17.05.2016


Ответы (1)


Я столкнулся с этой проблемой и решил ее, установив идентификатор для каждого ViewPager :)

person Linh Nguyen    schedule 17.05.2016
comment
Вы спасли мой день! Спасибо за решение! :) - person Pamir Cevikogullari; 30.07.2017