Autore Topic: Errore di visualizzazione titolo di tab multiriga di un ViewPager  (Letto 356 volte)

Offline Link_88

  • Nuovo arrivato
  • *
  • Post: 10
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Note II
  • Sistema operativo:
    Windows 7
0
Salve a tutti,

settando un titolo di tab di un ViewPager composto da più due parole, la seconda (che si trova a capo) viene nascosta.

Di seguito uno screen:



Il tab blue contiene una sola parola ed è correttamente visualizzata.
Il tab rosso contiene una seconda parola (più lunga di "mancata")

Di seguito il codice rilevante usato:

How I declare the pager in the activity:

   
Codice (Java): [Seleziona]
        // 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);

Pager Adapter:

Codice (Java): [Seleziona]
         /**
         * 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];
                }
        }

Grazie per l'attenzione