2016-04-25 7 views
0

In meiner App verwende ich einen Fragment-View-Pager in meinen Recycler-Ansichtszeilen. Ich mache das, um den Hauptinhalt in dem ersten Fragment anzuzeigen, und dann einen Fragmentcontainer eine Löschschaltfläche als das zweite Fragment. Aus irgendeinem Grund, wenn ich meine App starte, funktioniert mein View Pager nur in der ersten Reihe. Weiß jemand, was das verursachen könnte? Ich habe versucht, mehrere statische Zeilen zu verwenden, aber es funktioniert nur in der ersten. Das ist mein Recycler Ansicht Adaptercode:Verwenden von View Pager in Recycler Ansichtszeile?

  • Es kann wichtig sein, zu beachten, dass die Ansicht, die diese Recycler Ansicht teilweise von einer anderen Ansicht Pager enthalten ist, die in einem Fragment befindet.

    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

Sie sagen, Ihre recyclerView und Fragmente in einem anderen Fragment enthalten sind, ich glaube, Sie muss dann getChildFragmentManager() verwenden. Also statt neuer FeatureCellPagerAdapter (activity.getSupportFragmentManager(), Aktivität)); Probieren Sie es mit dem neuen FeatureCellPagerAdapter (yourOuterFragment.getChildFragmentManager(), activity)); – ElDuderino

+0

Ich sah dies sofort nach dem Posten, obwohl ich es gerade versucht und es hat nicht funktioniert –

+0

Ich habe auch versucht, wie 20 Ansichten, und es gilt ein Viewpager auf das erste sichtbare Fragment, aber nicht alle von ihnen .. –

Antwort

2

Ich habe dieses Problem konfrontiert und dies für jeden ViewPager durch Set ID lösen :)

+0

Du hast meinen Tag gerettet! Danke für die Lösung! :) –