PagerTabStrip 中的文本未在第一个视图中显示
Text in PagerTabStrip not displayed upon 1st view
我有以下简单设置:
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();
}
}
}
如果我第一次访问 activity,则不会显示 pagerstrip-texts。如果我滑动或单击选项卡,文本会正常显示:
出现这种奇怪行为的原因可能是什么?
对我来说,这个问题发生在我将 support-v13
(或 v4
)、appcompat-v7
、recyclerview-v7
和 design
库更新为 23.0.0
.我想这是一个错误。降级到 22.2.1
后,它工作正常。
我建议等到他们发布这些库的新版本。
更新: 此问题仅发生在 appcompat-v7
和 design
库中,现在已在 23.1.0
修订版 Android支持库。
我有以下简单设置:
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();
}
}
}
如果我第一次访问 activity,则不会显示 pagerstrip-texts。如果我滑动或单击选项卡,文本会正常显示:
出现这种奇怪行为的原因可能是什么?
对我来说,这个问题发生在我将 support-v13
(或 v4
)、appcompat-v7
、recyclerview-v7
和 design
库更新为 23.0.0
.我想这是一个错误。降级到 22.2.1
后,它工作正常。
我建议等到他们发布这些库的新版本。
更新: 此问题仅发生在 appcompat-v7
和 design
库中,现在已在 23.1.0
修订版 Android支持库。