Android - Как показать плитку страницы из нескольких слов ViewPager с помощью IconPagerAdapter, не скрывая второе слово?
Как я могу показать заголовок страницы с более чем одним словом без скрытия второго?
Вот объяснение:
Заголовок синей вкладки - это обычный заголовок с одним словом. Красная метка заголовка содержит 2 слова, но отображается только 1.
Вот код:
Как я заявляю пейджер в своей деятельности:
// Icons in pager tabs
int[] icons = new int[] {
R.drawable.ic_tab_contestazione,
R.drawable.ic_tab_note,
R.drawable.ic_tab_camera };
// Prepares the adapter to attach to the pager
mAdapter = new NuovaViolazioneAdapter(getSupportFragmentManager(), icons);
// Inflates pager
mViewPager = (SwipeableViewPager) findViewById(R.id.viol_classica_pager);
mViewPager.setAdapter(mAdapter);
mViewPager.setSwipeable(false);
// Inflates tab indicator (the upper clickable/scrollable bar)
mIndicator = (TabPageIndicator) findViewById(R.id.indicator);
mIndicator.setViewPager(mViewPager);
// Sets the current page (used when rotated)
int page = getIntent().getIntExtra(WHICH_PAGE, 0);
mIndicator.setCurrentItem(page);
Адаптер пейджера:
/**
* Extends FragmentPagerAdapter and Implemenets IconPagerAdapter (so the method getIconResId is allowed).
* <p>Sets which fragment has to be inflated for each position. Sets the tab title for each fragement.
*/
class NuovaViolazioneAdapter extends FragmentStatePagerAdapter implements IconPagerAdapter {
private int[] icons;
public NuovaViolazioneAdapter(FragmentManager fm, int[] icons) {
super(fm);
this.icons = icons;
}
@Override
public Fragment getItem(int position) {
switch (position) {
case POSITION_M_CONTESTAZIONE:
return MContestazioneFragment_.getInstance();
case POSITION_NOTE:
return NoteFragment_.getInstance();
case POSITION_FOTO:
return FotoFragment_.getInstance();
}
return null;
}
@Override
public CharSequence getPageTitle(int position) {
return NuovaViolazioneActivity.CONTENT[position
% NuovaViolazioneActivity.CONTENT.length]
.toUpperCase(Locale.ITALIAN);
}
@Override
public int getIconResId(int index) {
return icons[index];
}
}
2 ответа
Из вашего макета должна быть доступна одна опция android:Layout_weightSum
flag..Please Укажите, сколько вкладок вы хотите отобразить на экране.
У меня была такая же проблема.
Стиль по умолчанию для TabPageIndicator имеет Android:maxLines=1
Если вы измените его на 2, то, по крайней мере, второе слово будет отображаться во второй строке. Я также все еще пытаюсь понять, как все это будет отображаться в одной строке.