2015-12-19 11 views
7

मैं पाठ और निम्नलिखित tutorial से आइकन के साथ Tablayout पर काम कर रहा हूँ में पाठ को आइकन अगले सेट करने के लिएकैसे .. tablayout

मेरा प्रश्न कैसे पाठ करने के बजाय उन्हें ऊपर बगल में रखा आइकन बनाने के लिए है? मैं एंड्रॉइड डेवलपमेंट में नया हूं, उम्मीद है कि आप लोग मेरी मदद कर सकते हैं। अग्रिम धन्यवाद, वास्तव में इस सवाल का जवाब की सराहना करते हैं ..

enter image description here

यहाँ मेरी जावा फ़ाइल

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

अपना कोड पोस्ट करें। – Abhishek

+0

तो, आप इसके लिए कस्टम लेआउट जोड़ रहे हैं? –

+0

नहीं, मैं बस उन्हें जावा में कोड करता हूं .. क्षमा करें मैंने पहले ही कोड पोस्ट किया है .. –

उत्तर

2

यह आसान है है।

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

आपके लेआउट को एक drawableRight कि अपने आइकन निर्दिष्ट करता है के साथ एक सरल TextView होगा।

अधिक के लिए: http://panavtec.me/playing-with-the-new-support-tablayout/

+0

इस विधि के साथ मेरी समस्या यह है कि जब आप टैब में एक कस्टम लेआउट सेट करते हैं, तो टैबलेटआउट अब टेक्स्ट रंग को स्वचालित रूप से स्विच करने में सक्षम नहीं है इस पर आधारित है कि टैब का चयन किया गया है या नहीं। इस काम को कैसे बनाया जाए इसके बारे में कोई विचार? –

संबंधित मुद्दे