wie kreisförmiger viewpager zu erstellen?

Mögliche Duplikate:
ViewPager als kreisförmige Warteschlange / Wrapping

Ich habe drei Fragmentklassen in meinem Code. FirstActivity, SecondActivity, ThirdActivity Ich möchte diese drei Aktivitäten abwischen. Diese drei sind von der Fragment-Klasse entfernt

  • Android: Kann diese Aktion nach onSaveInstanceState nicht ausführen
  • EditText Werte im Bereich
  • Schalterpräferenz - Handhabung sowohl onPreferenceChange als auch onPreferenceClick
  • Wie man BENUTZER INAKTIVITÄT in android erkennt
  • So implementiere ich DrawerArrowToggle von Android appcompat v7 21 Bibliothek
  • Wie läuft man oder startet die Anwendung im Fragment von Android?
  • public class ViewPagerFragmentActivity extends FragmentActivity { private PagerAdapter mPagerAdapter; @Override protected void onCreate(Bundle savedInstanceState) { requestWindowFeature(Window.FEATURE_NO_TITLE); super.onCreate(savedInstanceState); super.setContentView(R.layout.viewpager_layout); initialisePaging(); } /** * Initialize the fragments to be paged */ List<Fragment> fragments = new Vector<Fragment>(); ViewPager pager; private void initialisePaging() { fragments.add(Fragment.instantiate(this, FirstActivity.class.getName())); fragments.add(Fragment.instantiate(this, SecondActivity.class.getName())); fragments.add(Fragment.instantiate(this, ThirdActivity.class.getName())); this.mPagerAdapter = new MyPagerAdapter(super.getSupportFragmentManager(), fragments); pager = (ViewPager) super.findViewById(R.id.viewpager); pager.setAdapter(this.mPagerAdapter); } 

    }

    und hier ist meine FragmentPageAdapter-Klasse

     public class MyPagerAdapter extends FragmentPagerAdapter { private final List<Fragment> fragments; public MyPagerAdapter(FragmentManager fm, List<Fragment> fragments) { super(fm); this.fragments = fragments; } @Override public Fragment getItem(int position) { System.out.println("position"+position); return this.fragments.get(position); } @Override public int getCount() { return this.fragments.size(); } 

    }

    mein Code funktioniert auf diese Weise A<->B<->c aber meine Anforderung ist, so zu rennen C<->A<->B<->C<-A-> das ist in kreisförmigen Fragmenten sind swipable …

  • Zeigen, um die Position des Popups einzustellen?
  • Aufblasen von Fragmenten mit Kompatibilitätspaket Android
  • Conent Transition NPE mit leeren gemeinsamen Elementen
  • Holen Sie sich die Zeilenposition in onCreateContextMenu
  • Falsche Zeilenende: gefundener Wagenrücklauf (\ r) ohne entsprechende Zeilenumbrüche (\ n)
  • Bildverarbeitung mit Android-Kamera
  • 2 Solutions collect form web for “wie kreisförmiger viewpager zu erstellen?”

    Circular ViewPager ist möglich. Mit Hilfe von ViewPager als kreisförmige Warteschlange / Wrapping hat dieser Link so kodiert. Hoffe, es hilft, was du brauchst

    Die CircluarPagerAdapter-Klasse:

    Aufgaben

      public class CircularPagerAdapter extends PagerAdapter{ private int[] pageIDsArray; private int count; public CircularPagerAdapter(final ViewPager pager, int... pageIDs) { super(); int actualNoOfIDs = pageIDs.length; count = actualNoOfIDs + 2; pageIDsArray = new int[count]; for (int i = 0; i < actualNoOfIDs; i++) { pageIDsArray[i + 1] = pageIDs[i]; } pageIDsArray[0] = pageIDs[actualNoOfIDs - 1]; pageIDsArray[count - 1] = pageIDs[0]; pager.setOnPageChangeListener(new OnPageChangeListener() { public void onPageSelected(int position) { int pageCount = getCount(); if (position == 0){ pager.setCurrentItem(pageCount-2,false); } else if (position == pageCount-1){ pager.setCurrentItem(1,false); } } public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { // TODO Auto-generated method stub } public void onPageScrollStateChanged(int state) { // TODO Auto-generated method stub } }); } public int getCount() { return count; } public Object instantiateItem(View container, int position) { LayoutInflater inflater = (LayoutInflater) container.getContext() .getSystemService(Context.LAYOUT_INFLATER_SERVICE); int pageId = pageIDsArray[position]; View view = inflater.inflate(pageId, null); ((ViewPager) container).addView(view, 0); return view; } @Override public void destroyItem(View container, int position, Object object) { ((ViewPager) container).removeView((View) object); } @Override public void finishUpdate(View container) { // TODO Auto-generated method stub } @Override public boolean isViewFromObject(View view, Object object) { return view == ((View) object); } @Override public void restoreState(Parcelable state, ClassLoader loader) { // TODO Auto-generated method stub } @Override public Parcelable saveState() { // TODO Auto-generated method stub return null; } @Override public void startUpdate(View container) { // TODO Auto-generated method stub } } 

    und das ist deine Hauptklasse:

    Aufgaben

     public class MainActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ViewPager myPager = (ViewPager) findViewById(R.id.conpageslider); PagerAdapter adapter = new CircularPagerAdapter(myPager, new int[]{R.layout.first_activity, R.layout.second_activity, R.layout.third_activity}); myPager.setAdapter(adapter); myPager.setCurrentItem(3); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.activity_main, menu); return true; } } 

    Du kannst so etwas probieren:

    1) Machen Sie getCount() einen riesigen Wert (eine Reihe von Swipe Weg höher als das, was Ihr Benutzer verwenden könnte)

    2) make getItem etwas zurück. fragments.get(position % fragments.size())

    3) Machen Sie Ihren Pager starten irgendwo in der Mitte des Bereichs definiert durch getCount() (Um das Swiping von A bis C am Anfang zu erlauben), stellen Sie sicher, einen Wert zu wählen, der Ihnen das erste Fragment% 3 gibt

    Ich bin mir bewusst, dass diese Lösung ein bisschen dreckig ist, aber ich kann im Moment keinen besseren finden

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.