java - TabLayout get stuck with viewpager when screen orientation change -
i using design support library. i've fragment , inside fragment have fragment has view pager 3 new fragment
my fragment code -
<?xml version="1.0" encoding="utf-8"?> <linearlayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <android.support.design.widget.tablayout android:id="@+id/tab_layout" android:layout_width="match_parent" android:layout_height="?attr/actionbarsize" android:background="@color/colorprimary" app:tabindicatorcolor="@android:color/white" app:tabindicatorheight="4dp" app:tabmode="fixed" /> <android.support.v4.view.viewpager android:id="@+id/pager" android:layout_width="match_parent" android:layout_height="match_parent" /> </linearlayout>
fragment java code
@override public view oncreateview(layoutinflater inflater, viewgroup container, bundle savedinstancestate) { view v = inflater.inflate(r.layout.fragment_main, container, false); tablayout tablayout = (tablayout) v.findviewbyid(r.id.tab_layout); tablayout.settabgravity(tablayout.gravity_fill); tablayout.settabtextcolors(color.parsecolor("#ffffff"), color.parsecolor("#000000")); viewpager viewpager = (viewpager) v.findviewbyid(r.id.pager); viewpager.setoffscreenpagelimit(3); viewpager.setadapter(new sectionpageradapter(getactivity().getsupportfragmentmanager())); tablayout.setupwithviewpager(viewpager); return v; } public class sectionpageradapter extends fragmentpageradapter { public sectionpageradapter(fragmentmanager fm) { super(fm); } @override public fragment getitem(int position) { switch (position) { case 0: return new tab1(); case 1: return new tab2(); case 2: return new tab3(); default: return null; } } @override public int getcount() { return 3; } @override public charsequence getpagetitle(int position) { switch (position) { case 0: return "tab 1"; case 1: return "tab 2"; case 2: return "tab 3"; default: return ""; } } }
now working fine when rotate screen, swipe on viewpager not work correctly. mean stuck in between 2 tabs. tab indicator stuck between tabs. takes 6-7 swipe go 1st 3rd tab. when swiping after rotating there 1 tab fragment choose before rotating.
you can use fragmentstatepageradapter instead of fragmentpageradapter
Comments
Post a Comment