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, то, по крайней мере, второе слово будет отображаться во второй строке. Я также все еще пытаюсь понять, как все это будет отображаться в одной строке.

Другие вопросы по тегам