2016-04-25 3 views
0

В моем приложении я использую пейджер с фрагментами в строках представления ресайклеров. Я делаю это, чтобы отобразить основное содержимое в первом фрагменте, а затем контейнер фрагмента - кнопку удаления в качестве второго фрагмента. По какой-то причине, когда я запускаю свое приложение, пьюджер моего представления работает только в первой строке. Кто-нибудь знает, что может быть причиной этого? Я попытался использовать несколько статических строк, но он работает только в первом. Это мой утилизатор код вида адаптера:Использование пейджера представления в строке просмотра 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; 
    } 
    

    }

+0

Вы говорите, что ваш recyclerView и фрагменты содержатся в другом фрагменте, я думаю, что вы необходимо использовать getChildFragmentManager(). Поэтому вместо нового FeatureCellPagerAdapter (activity.getSupportFragmentManager(), activity)); попробуйте его с помощью нового FeatureCellPagerAdapter (yourOuterFragment.getChildFragmentManager(), activity)); – ElDuderino

+0

Я видел это сразу после публикации, хотя я просто попробовал его, и он не работал –

+0

Я также попытался добавить как 20 просмотров, и он применил viewpager к первому видимому фрагменту, но не ко всем из них. –

ответ

2

Я столкнулся с этой проблемой и решить эту проблему с помощью набора ID для каждого ViewPager :)

+0

Ты спас мой день! Спасибо за решение! :) –

Смежные вопросы