2017-09-07 22 views
2

아이콘 버튼이있는 메뉴에 TabLayout을 사용하고 있습니다. 드로어 블에서 XML을 통해 아이콘에 색을 칠할 수 있습니까?Android Studio : TabItem 내의 아이콘에 색조 설정

android : tint는 TabItem 요소와 함께 작동하지 않습니다. 당신이 하나 개의 방법이 XML을 통해 색조를 설정하려는 경우 당신은 일부 코딩을 할 수

답변

3

private void setupTabIcons() { 
    tabLayout.getTabAt(0).setIcon(tabIcons[0]); 
    tabLayout.getTabAt(1).setIcon(tabIcons[1]); 
    tabLayout.getTabAt(2).setIcon(tabIcons[2]); 
    tabLayout.getTabAt(3).setIcon(tabIcons[3]); 

    tabLayout.getTabAt(0).getIcon().setColorFilter(Color.GREEN, PorterDuff.Mode.SRC_IN); 
    tabLayout.getTabAt(1).getIcon().setColorFilter(Color.parseColor("#a8a8a8"), PorterDuff.Mode.SRC_IN); 
    tabLayout.getTabAt(2).getIcon().setColorFilter(Color.parseColor("#a8a8a8"), PorterDuff.Mode.SRC_IN); 
    tabLayout.getTabAt(3).getIcon().setColorFilter(Color.parseColor("#a8a8a8"), PorterDuff.Mode.SRC_IN); 


    tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() { 
     @Override 
     public void onTabSelected(TabLayout.Tab tab) { 
      tab.getIcon().setColorFilter(Color.GREEN, PorterDuff.Mode.SRC_IN); 

     } 

     @Override 
     public void onTabUnselected(TabLayout.Tab tab) { 
      tab.getIcon().setColorFilter(Color.parseColor("#a8a8a8"), PorterDuff.Mode.SRC_IN); 
     } 

     @Override 
     public void onTabReselected(TabLayout.Tab tab) { 

     } 
    }); 
} 
+0

setOnTabSelectedListener 작동합니다. 대신 "addOnTabSelectedListener"를 사용했습니다. –

+1

cool. 바라기를 나는 그것을 알아 차리지 못했다. 당신을 도와 줘서 다행 –

1

을 시도합니다. custom_tab 레이아웃이

<android.support.design.widget.TabItem 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:icon="@drawable/ic_drawable" 
     android:layout="@layout/custom_tab" /> 

가 : TintableImageView

<?xml version="1.0" encoding="utf-8"?> 
<com.view.TintableImageView 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     xmlns:app="http://schemas.android.com/apk/res-auto" 
     android:id="@android:id/icon" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center" 
     app:tint_color="@color/red" /> 

소스는 here을 찾을 수 있습니다 속성 android:layout을 통해 설정 TabItem에 대한 사용자 정의 레이아웃입니다. 당신은 다른 선택의 상태에 대해 서로 다른 아이콘의 색상을 사용 단지 색상 선택기 파일을 생성하고 색조 색상으로 설정하려면

이 방법을 사용하면 유연성을 제공하며 사용되지 않습니다()

app:tint_color="@color/selector_tab"