2017-12-08 4 views
0

in einer Android-App, verwende ich eine TabLayout, um mehrere Fragments in einer einzigen Aktivität anzuzeigen. Ich möchte die Registerkarten mit Symbolen und einer zweizeiligen Überschrift beschriftet werden.Multiline PageTitle mit android.support.design.widget.TabLayout

Im onCreate Aktivitäten initialisiere ich die SectionsPageAdapter und die TabLayout wie:

private SectionsPagerAdapter mSectionsPagerAdapter; 
protected void onCreate(Bundle savedInstanceState) { 
    ... 
    // Create the adapter that will return a fragment for each of the three 
    // primary sections of the activity. 
    mSectionsPagerAdapter = new 
    SectionsPagerAdapter(getSupportFragmentManager()); 

    // Set up the ViewPager with the sections adapter. 
    mViewPager = (ViewPager) findViewById(R.id.container); 
    mViewPager.setAdapter(mSectionsPagerAdapter); 
    // add a PageChangeListener to be able to detect which tab is activated 
    mViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener(){ 
     ... 
    }); 

    ... 
    TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs); 
    tabLayout.setupWithViewPager(mViewPager); 
    tabLayout.setTabGravity(TabLayout.GRAVITY_CENTER); 

    //Set icons for tabs 
    tabLayout.getTabAt(0).setIcon(R.drawable.ic0); 
    tabLayout.getTabAt(1).setIcon(R.drawable.ic1); 
    tabLayout.getTabAt(2).setIcon(R.drawable.ic2); 
} 

Und in der SectionpagerAdapter definiere ich die PageTitles mit:

public CharSequence getPageTitle(int position) { 
    switch (position) { 
     case 0: 
      return "First \nTab"; 
     case 1: 
      return "Second \nTab"; 
     case 2: 
      return "Third \nTab"; 
    } 
    return null; 
} 

Aber wenn ich die App laufen, Die PageTitel sind nicht in zwei Zeilen unterteilt, sondern mit ... auf den Bildschirm gekürzt.

So aktivieren Sie Multiline PageTitel für die Tabs?

Antwort

0
tabLayout.getTabAt(i).setCustomView(yuorTabView); 

Und Sie können Ihren eigenen TabView anpassen