簡體   English   中英

Android:SlidingTabLayout圖標的大小,顏色,對齊方式和默認選項卡

[英]Android: SlidingTabLayout icon size, color, alignment, and default tab

我按照本教程創建了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);

但是我仍然需要了解以下內容:

  • 如何更改圖標顏色以及圖標的大小?
  • 如何在標簽中間對齊圖標?
  • 如何將中間選項卡設置為默認值?

在create上嘗試以下操作: tabLayout = (TabLayout) findViewById(R.id.tabs); tabLayout.setupWithViewPager(viewPager); setIconForTabs(tabLayout); tabLayout = (TabLayout) findViewById(R.id.tabs); tabLayout.setupWithViewPager(viewPager); setIconForTabs(tabLayout); 和這兩種方法:

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" />

您需要使用支持設計庫

我希望這能幫到您。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM