1

У меня есть 3 разных вкладки, где у каждого есть текст. Теперь я хочу узнать, как добавить рисованные изображения поверх текста вкладки. Я знаю, что это возможно с помощью tabhosts, но это устарело. Мой класс является следующее:Добавить изображение в закладки с помощью фрагментов

public class MainActivity extends FragmentActivity implements 
    ActionBar.TabListener { 

private ViewPager viewPager; 
private TabsPagerAdapter mAdapter; 
private ActionBar actionBar; 
// Tab titles 
private String[] tabs = { "Top Rated", "Games", "Movies" }; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    // Initilization 
    viewPager = (ViewPager) findViewById(R.id.pager); 
    actionBar = getActionBar(); 
    mAdapter = new TabsPagerAdapter(getSupportFragmentManager()); 

    viewPager.setAdapter(mAdapter); 
    actionBar.setHomeButtonEnabled(false); 
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);   

    // Adding Tabs 
    for (String tab_name : tabs) { 
     actionBar.addTab(actionBar.newTab().setText(tab_name) 
       .setTabListener(this)); 
    } 

    /** 
    * on swiping the viewpager make respective tab selected 
    * */ 
    viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { 

     @Override 
     public void onPageSelected(int position) { 
      // on changing the page 
      // make respected tab selected 
      actionBar.setSelectedNavigationItem(position); 
     } 

     @Override 
     public void onPageScrolled(int arg0, float arg1, int arg2) { 
     } 

     @Override 
     public void onPageScrollStateChanged(int arg0) { 
     } 
    }); 
} 

@Override 
public void onTabReselected(Tab tab, FragmentTransaction ft) { 
} 

@Override 
public void onTabSelected(Tab tab, FragmentTransaction ft) { 
    // on tab selected 
    // show respected fragment view 
    viewPager.setCurrentItem(tab.getPosition()); 
} 

@Override 
public void onTabUnselected(Tab tab, FragmentTransaction ft) { 
} 

}

ответ

4

Смотрите эту ссылку: http://developer.android.com/reference/android/app/ActionBar.Tab.html#setIcon%28android.graphics.drawable.Drawable%29

Пример кода:

actionBar.addTab(actionBar.newTab().setText(tab_name).setIcon(R.drawable.tab_icon).setTabListener(this)); 

Но, пожалуйста, рассмотреть следующие вопросы: действия режима бар навигации устарели и не поддерживается встроенными панелями действий панели инструментов. Вместо этого рассмотрите возможность использования других общих шаблонов навигации. (http://developer.android.com/design/patterns/navigation.html)


Edit: для вашего кода вы могли бы сделать что-то вроде этого:

Создать значки, как вы делаете для заголовков:

// Tab titles 
private String[] tabs = { "Top Rated", "Games", "Movies" }; 
//make sure this has the same length as tabs-array! 
private int[] icons = {R.drawable.tab_rated, R.drawable.tab_games, R.drawable.tab_movies} 

и добавить их в петля:

// Adding Tabs 
for (int i = 0; i < tabs.length; i++) { 
    actionBar.addTab(actionBar.newTab().setText(tabs[i]).setIcon(icons[i]).setTabListener(this)); 
} 
+0

Здравствуйте, код вы предоставили мне работы. Единственная проблема заключается в том, что он назначит одинаковый ярлык для всех вкладок. Я хотел бы знать, как добавить к каждому элементу табуляции другой вариант. – AndroidKrayze

+0

Ну, тогда измените «R.drawable.tab_icon» на то, что вам нравится. Я обновлю свой ответ через минуту ... – StefanTo

+0

И, пожалуйста, примите ответ правильно – StefanTo

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

  • Нет связанных вопросов^_^