2015-12-19 18 views
7

Ich arbeite an Tablayout mit Text und Symbol aus den folgenden tutorial zu setzen ..Wie Symbol neben Text in tablayout

Meine Frage ist, wie das Symbol neben den Text statt über sie gelegt zu machen? Ich bin neu in Android Development, hoffentlich können Sie mir helfen. Vielen Dank im Voraus, schätzen die Antwort ..

enter image description here

Hier ist meine Java-Datei

public class AllProducts extends AppCompatActivity { 

public ViewPager viewPager; 
public TabLayout tabLayout; 
    public int[] tabIcons = { 
    R.drawable.ic_directions_car_white_24dp, 
    R.drawable.ic_motorcycle_white_24dp, 
    R.drawable.ic_build_white_24dp 
}; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.all_products); 
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
    setSupportActionBar(toolbar); 
    getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
    getSupportActionBar().setDisplayShowHomeEnabled(true); 


    viewPager = (ViewPager) findViewById(R.id.viewpager2); 
    setupViewPager(viewPager); 

    tabLayout = (TabLayout) findViewById(R.id.sliding_tabs); 
    tabLayout.setupWithViewPager(viewPager); 
    setupTabIcons(); 

} 

private void setupTabIcons() { 
    tabLayout.getTabAt(0).setIcon(tabIcons[0]); 
    tabLayout.getTabAt(1).setIcon(tabIcons[1]); 
    tabLayout.getTabAt(2).setIcon(tabIcons[2]); 
} 


private void setupViewPager(ViewPager viewPager) { 
    ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager()); 
    adapter.addFragment(new Tab1(), "CAR"); 
    adapter.addFragment(new Tab2(), "MOTORCYCLE"); 
    adapter.addFragment(new Tab3(), "OTHERS"); 
    viewPager.setAdapter(adapter); 
} 

class ViewPagerAdapter extends FragmentPagerAdapter { 
    private final List<Fragment> mFragmentList = new ArrayList<>(); 
    private final List<String> mFragmentTitleList = new ArrayList<>(); 

    public ViewPagerAdapter(FragmentManager manager) { 
     super(manager); 
    } 

    @Override 
    public Fragment getItem(int position) { 
     return mFragmentList.get(position); 
    } 

    @Override 
    public int getCount() { 
     return mFragmentList.size(); 
    } 

    public void addFragment(Fragment fragment, String title) { 
     mFragmentList.add(fragment); 
     mFragmentTitleList.add(title); 
    } 

    @Override 
    public CharSequence getPageTitle(int position) { 
     return mFragmentTitleList.get(position); 
    } 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 
     case android.R.id.home: 
      finish(); 
      return true; 
     default: 
      return super.onOptionsItemSelected(item); 
    } 
} 

}

+0

poste deinen Code. – Abhishek

+0

Sie fügen also benutzerdefinierte Layouts hinzu? –

+0

Nein, ich kodiere sie nur in Java .. Sorry, ich habe den Code bereits gepostet. –

Antwort

2

Es ist einfach.

Tab tab = tabLayout.newTab(); 
tab.setCustomLayout(R.layout.whatever); 
tabLayout.addTab(add); 

Ihr Layout wäre eine einfache TextView mit einem drawableRight, dass Ihr Symbol angibt.

Für mehr: http://panavtec.me/playing-with-the-new-support-tablayout/

+0

Mein Problem mit dieser Methode ist, dass, wenn Sie ein benutzerdefiniertes Layout in der Registerkarte festlegen, das Tablayout nicht mehr automatisch die Textfarbe wechseln kann basierend darauf, ob die Registerkarte ausgewählt ist oder nicht. Irgendeine Idee, wie man das auch macht? –

Verwandte Themen