2015-12-01 2 views
1

Я следил за этим tutorial, чтобы создать SlidingTabLayout. Он работал нормально, но я хочу настроить его для добавления значков вместо текста. Я использовал следующий код, который я нашел в вопросе:Android: SlidingTabLayout размер значка, цвет, выравнивание и вкладка по умолчанию

Adapter.java

private int[] imageResId = { 
      R.drawable.ic_tab_all, 
      R.drawable.ic_tab_fav, 
      R.drawable.ic_tab_profile 
    }; 
    @Override 
    public CharSequence getPageTitle(int position) {   
     Drawable image = context.getResources().getDrawable(imageResId[position]);    
     image.setBounds(0, 0, image.getIntrinsicWidth(), image.getIntrinsicHeight()); 
     SpannableString sb = new SpannableString(" "); 
     ImageSpan imageSpan = new ImageSpan(image, ImageSpan.ALIGN_BOTTOM); 
     sb.setSpan(imageSpan, 0, 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 
     return sb; 
    } 

custom_tab.xml

<?xml version="1.0" encoding="utf-8"?> 
<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textSize="12sp" 
    android:textStyle="bold" 
    android:background="?android:selectableItemBackground" 
    android:padding="16dp" /> 

MainActivity.java

mTabs.setCustomTabView(R.layout.custom_tab, 0); 
mTabs.setViewPager(mPager); 

Но я все еще нужно чтобы знать следующее:

  • Как изменить цвет значков и какими размерами должны быть значки?
  • Как выровнять значки в середине вкладки?
  • Как установить среднюю вкладку по умолчанию?

ответ

0

попробовать это на создание: tabLayout = (TabLayout) findViewById(R.id.tabs); tabLayout.setupWithViewPager(viewPager); setIconForTabs(tabLayout); и это 2 метода:

public int getIconsForTabs(int i) { 
    int[] imageResId = { 
      R.drawable.ic_action_action_event, 
      R.drawable.ic_action_av_my_library_books, 
      R.drawable.ic_action_maps_location_history, 
      R.drawable.ic_action_content_report 
    }; 
    return imageResId[i]; 
} 




} 
private void setIconForTabs(TabLayout tabLayout) { 
    Drawable drawable; 
    for (int i = 0; i < 4; i++) { 
     drawable = ContextCompat.getDrawable(this, getIconsForTabs(i)); 
     if (drawable != null) { 
      drawable.mutate(); 
      drawable.setColorFilter(Color.yourColor, PorterDuff.Mode.SRC_ATOP); 
     } 
     tabLayout.getTabAt(i).setIcon(drawable); 
     tabLayout.getTabAt(i).setText(""); 
    } 

} 

и XML <android.support.design.widget.TabLayout android:id="@+id/tabs" android:layout_width="match_parent" android:layout_height="wrap_content" />

вы должны использовать поддержку Библиотека проектирования

я надеюсь, что это будет помочь тебе.

+0

Спасибо за ответ, но я использовал библиотеку поддержки, и у меня была ошибка [ссылка] (http://stackoverflow.com/questions/34006230/android-tablayout-indocator-hanging-between-tabs/34006894 # 34006894) –