PagerTabStrip 中的文本未在第一个视图中显示

Text in PagerTabStrip not displayed upon 1st view(PagerTabStrip 中的文本未在第一个视图中显示)

本文介绍了PagerTabStrip 中的文本未在第一个视图中显示的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有以下简单的设置:

swipeable.xml

这种奇怪行为的原因是什么?

解决方案

对我来说,这个问题发生在我更新了 support-v13(或 v4)之后,appcompat-v7recyclerview-v7design 库到 23.0.0.我想这是一个错误.降级到22.2.1后,一切正常.

我建议等到他们发布这些库的新版本.

更新:此问题仅出现在 appcompat-v7design 库中,现已在 23.1 中得到修复.0 Android 支持库的修订.

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?

解决方案

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.

这篇关于PagerTabStrip 中的文本未在第一个视图中显示的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本文标题为:PagerTabStrip 中的文本未在第一个视图中显示