2016-01-12 3 views
-1

Я реализовал Astuetz 'PagerSlidingTabStrip для текста в качестве вкладки. Но я хочу иметь иконы и текст. Я понимаю из этого link, что Astuetz 'может иметь либо текст, либо iocn. Могу ли я иметь какой-либо пользовательский макет для этого? Также я хочу, чтобы вкладки начинались с центра, а индикатор подчеркивания был зафиксирован в центре.Добавить значок + текст в PagerSlidingTab

MainActivity 
 

 
public class MainActivity extends FragmentActivity { 
 
\t 
 

 
\t private PagerSlidingTabStrip tabs; 
 
\t private ViewPager pager; 
 
\t private MyPagerAdapter adapter; 
 

 
\t 
 
\t @Override 
 
\t protected void onCreate(Bundle savedInstanceState) { 
 
\t \t // TODO Auto-generated method stub 
 
\t \t super.onCreate(savedInstanceState); 
 
\t \t setContentView(R.layout.activity_main); 
 
\t \t 
 
\t \t tabs = (PagerSlidingTabStrip) findViewById(R.id.tabs); 
 
\t \t pager = (ViewPager) findViewById(R.id.pager); 
 
\t \t adapter = new MyPagerAdapter(getSupportFragmentManager()); 
 

 
\t \t pager.setAdapter(adapter); 
 
\t \t 
 
\t \t final int pageMargin = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 4, getResources() 
 
\t \t \t \t .getDisplayMetrics()); 
 
\t \t pager.setPageMargin(pageMargin); 
 

 
\t \t tabs.setViewPager(pager); 
 

 
\t \t 
 
\t } 
 
\t public class MyPagerAdapter extends FragmentPagerAdapter{ 
 

 
\t \t private final String[] TITLES = { "Contact", "Home"}; 
 
\t \t //private final int[] ICONS = { R.drawable.ic_contact, R.drawable.ic_home}; 
 

 
\t \t public MyPagerAdapter(FragmentManager fm) { 
 
\t \t \t super(fm); 
 
\t \t } 
 

 
\t \t @Override 
 
\t \t public CharSequence getPageTitle(int position) { 
 
\t \t \t return TITLES[position]; 
 
\t \t } 
 

 
\t \t @Override 
 
\t \t public int getCount() { 
 
\t \t \t return TITLES.length; 
 
\t \t } 
 

 
\t \t @Override 
 
\t \t public Fragment getItem(int position) { 
 
\t \t \t return SuperAwesomeCardFragment.newInstance(position); 
 
\t \t } 
 

 
\t } 
 
}

ответ

0

Как метод показывает в библиотеке, вы не можете сделать это без изменения кода. Для этого нужно развить вилку. Как ниже метод shows-

for (int i = 0; i < tabCount; i++) { 

     if (pager.getAdapter() instanceof IconTabProvider) { 
      addIconTab(i, ((IconTabProvider) pager.getAdapter()).getPageIconResId(i)); 
     } else { 
      addTextTab(i, pager.getAdapter().getPageTitle(i).toString()); 
     } 

    } 

Вы можете иметь только один либо тексты или значки одновременно. Я предлагаю вам использовать TabLayout из библиотеки поддержки дизайна. Вы можете использовать метод setCustomView для установки пользовательского вида в закладках.

+0

Можете ли вы дать мне ссылку на образец? – Sammy

+0

https://guides.codepath.com/android/google-play-style-tabs-using-tablayout –

+0

И как сделать индикатор зафиксированным в центре? – Sammy

Смежные вопросы