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

Popular posts from this blog

c# - Validate object ID from GET to POST -

node.js - Custom Model Validator SailsJS -

php - Find a regex to take part of Email -