Text in PagerTabStrip not displayed upon 1st view

2019-02-21 09:37发布

问题:

I have the following simple setup:

swipeable.xml

<LinearLayout
    android:id="@+id/content_frame"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <include layout="@layout/toolbar" />

    <android.support.v4.view.ViewPager
        android:id="@+id/pager"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >

        <android.support.v4.view.PagerTabStrip
            android:layout_width="match_parent"
            android:layout_height="wrap_content"/>
    </android.support.v4.view.ViewPager>
</LinearLayout>

Activity:

public class InfoActivity extends ActionBarActivity {

  private static final int[][] KEYS = { { R.string.usage, R.string.usage_text }, 
                                        { R.string.data_protection, R.string.data_protection_text }, 
                                        { R.string.impressum, R.string.impressum_text } };

  @Override
  protected void onCreate( Bundle savedInstanceState ) {
    setContentView( R.layout.swipeable );
    super.onCreate( savedInstanceState );
    ViewPager viewPager = (ViewPager)findViewById( R.id.pager );
    viewPager.setAdapter( new SwipeAdapter( getSupportFragmentManager() ) );
  }

  class SwipeAdapter extends FragmentStatePagerAdapter {

    public SwipeAdapter( FragmentManager fm ) {
      super( fm );
    }

    @Override
    public Fragment getItem( int position ) {
      Bundle b = new Bundle();
      b.putInt( "key", KEYS[ position ][ 1 ] );
      return Fragment.instantiate( InfoActivity.this, InfoFragment.class.getName(), b );
    }

    @Override
    public int getCount() {
      return KEYS.length;
    }

    @Override
    public CharSequence getPageTitle( int position ) {
      return getString( KEYS[ position ][ 0 ] ).toUpperCase();
    }
  }      
}

If I access the activity the 1st time, no pagerstrip-texts are shown. If I swipe or click the tab, the texts are displayed normally:

What could be the reason for such a strange behavior?

回答1:

For me this issue happened after I updated the support-v13 (or v4), appcompat-v7, recyclerview-v7 and design libraries to 23.0.0. I guess it is a bug. After downgrading it to 22.2.1, it is working fine.

I would suggest to wait until they release new revision of these libraries.

Update: This issue is occurring only in appcompat-v7 and design libs, which has now got fixed in 23.1.0 revision of Android Support Library.