2016-06-02 15 views
1

Hallo Ich habe einen TabLayout und ViewPager in einem FragmentProbleme, wenn ich tablayout und viewpager innerhalb Fragment verwenden

public class Explore : Android.Support.V4.App.Fragment, AppCompatActivity 
    { 
     private TabLayout tablayout; 
     private ViewPager viewPager; 
     private TimeBuget timeBuget; 
     private SpecialActivity specialActivity; 
     public override void OnCreate (Bundle savedInstanceState) 
     { 
      base.OnCreate (savedInstanceState); 

      // Create your fragment here 
     } 

     public override View OnCreateView (LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) 
     { 
      // Use this to return your custom view for this Fragment 
      // return inflater.Inflate(Resource.Layout.YourFragment, container, false); 

      //return base.OnCreateView (inflater, container, savedInstanceState); 
      return inflater.Inflate(Resource.Layout.ExploreLayout,container,false); 

      viewPager = View.FindViewById<ViewPager> (Resource.Id.viewpagerExplore); 
      setupViewPager (viewPager); 

      tablayout = View.FindViewById<TabLayout> (Resource.Id.sliding_tabsExplore); 
      tablayout.SetupWithViewPager (viewPager); 
     } 

     private void InditialFragment() 
     { 
      timeBuget = new TimeBuget(); 
      specialActivity = new SpecialActivity(); 
     } 
     public void setupViewPager(ViewPager viewPager) 
     { 
      InditialFragment(); 
      ViewPagerAdapter adapter = new ViewPagerAdapter (SupportFragmentManager); 
      adapter.addFragment (timeBuget, "Explore"); 
      adapter.addFragment (specialActivity, "Featured"); 

      viewPager.Adapter=adapter; 
     } 
    } 
  1. Klassen nicht mehrere Basisklassen haben kann.
  2. Wenn ich AppCompatActivity nicht, so kann ich nicht SupportFragmentManager verwenden

Wie es zu lösen?

Antwort

1

Sie müssen das Fragment innerhalb der Aktivität hosten, nicht beide gleichzeitig verwenden. Nachdem Sie tun, dass Sie die SupportFragmentManager wie folgt zugreifen können:

ViewPagerAdapter adapter = new ViewPagerAdapter ((SpecialActivity as AppCompatActivity).SupportFragmentManager); 
+0

(MainActivity als AppCompatActivity) .SupportFragmentManager). Project.MainActivity 'ist ein' Typ ', aber eine 'Variable' wurde erwartet. –

+0

Dieses Fragment liegt im Viewpager in MainActivity. –

+0

Ja, also anstelle von 'SpecialActivity' verwenden Sie' MainActivity' – Martijn00

Verwandte Themen