В моем приложении я использую пейджер с фрагментами в строках представления ресайклеров. Я делаю это, чтобы отобразить основное содержимое в первом фрагменте, а затем контейнер фрагмента - кнопку удаления в качестве второго фрагмента. По какой-то причине, когда я запускаю свое приложение, пьюджер моего представления работает только в первой строке. Кто-нибудь знает, что может быть причиной этого? Я попытался использовать несколько статических строк, но он работает только в первом. Это мой утилизатор код вида адаптера:Использование пейджера представления в строке просмотра 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; }
}
Вы говорите, что ваш recyclerView и фрагменты содержатся в другом фрагменте, я думаю, что вы необходимо использовать getChildFragmentManager(). Поэтому вместо нового FeatureCellPagerAdapter (activity.getSupportFragmentManager(), activity)); попробуйте его с помощью нового FeatureCellPagerAdapter (yourOuterFragment.getChildFragmentManager(), activity)); – ElDuderino
Я видел это сразу после публикации, хотя я просто попробовал его, и он не работал –
Я также попытался добавить как 20 просмотров, и он применил viewpager к первому видимому фрагменту, но не ко всем из них. –