2017-02-15 31 views
1

我指this。時間表單擊「時間表」時會顯示活動,但始終選擇第一個項目的顏色(收藏夾)。它不會從「收藏夾」項目顏色更改「計劃」項目顏色。還有第三項(音樂)。我使用的Android :state_checked機器人:state_enabled」如果有startActivity工作,它不會改變時刻表從收藏夾項目顏色項的顏色如果不是,它改變顏色如何解決這個顏色選擇問題項目在android中選擇的顏色BottomNavigationView

activity_main.xml中

app:itemIconTint="@drawable/nav_item_color_state" 
app:itemTextColor="@drawable/nav_item_color_state" 
app:menu="@menu/bottom_navigation_main" 

@繪製/ nav_item_color_state

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:color="@color/white" android:state_enabled="true" /> 
    <item android:color="@color/colorPrimaryDark" android:state_enabled="false" /> 
</selector> 
+0

您是否爲計劃,收藏夾和音樂採取了單獨的活動? –

+0

是的,我將這三項活動分開 – WPG

回答

0

你有沒有聽說過所謂的Roughik的BottomBar的包裝項目e使BottomNavigationView的使用更容易?項目可以找到here

我建議您使用該項目是最新的,並在高層次有貢獻。如果你是指利用這一點,你可以簡單地插入下面的代碼上的標籤點擊時改變顏色,並做更多的個性化的東西:

TabLayout tabLayout = (TabLayout) findViewById(R.id.tabLayout); 
Tab tab = newTab().setIcon(new BitmapDrawable(getResources(), icon))); 
tab.getIcon().setColorFilter(Color.parseColor("#7E7E7E"), PorterDuff.Mode.SRC_IN); 

tabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() { 
          @Override public void onTabSelected(TabLayout.Tab tab) { 
          if (tab != null && tab.getIcon() != null) { 
           tab.getIcon().clearColorFilter(); 
           } 
          } 
          @Override public void onTabUnselected(TabLayout.Tab tab) { 
          if (tab != null && tab.getIcon() != null) { 
           tab.getIcon() 
            .setColorFilter(Color.parseColor("#7E7E7E"), 
             PorterDuff.Mode.SRC_IN); 
          } 
          } 
          @Override public void onTabReselected(TabLayout.Tab tab) { 
          } 
         }); 
         } 
        } 
        }); 

所以基本上我在這裏做的,我色未選中的選項卡#7E7E7E和清除過濾器以便從選定的顏色着色,使它們以其圖標的原始顏色顯示。當然,你也可以選擇另一種顏色,這取決於你。

希望這可以幫助你!

乾杯,

RENC

+0

這意味着使用tabLayout而不是RelativeLayout。 tabLayout在哪裏? – WPG

+0

@StevenLin如果你參考了給定的GitHub項目,你可以找到這個用法的庫。 – rencsaridogan

+0

tabLayout顯示爲下劃線,我只想使用徽標和文本。先生! – WPG

1

這裏是簡單的解決你的問題

<android.support.design.widget.TabLayout 
.... 
app:tabBackground="@drawable/tab_color_selector" 
... 
/> 

選擇res/drawable/tab_color_selector.xml

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:drawable="@color/tab_background_selected" android:state_selected="true"/> 
    <item android:drawable="@color/tab_background_unselected"/> 
</selector> 

更新標籤項選擇顏色需要什麼你來。

8

創建資源彩色目錄,並創建XML文件自定義底部的導航項目

RES /顏色/ bottom_nav_color.xml:

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_checked="true" android:color="@color/your_color" /> 
    <item android:state_checked="false" android:color="@color/your_color"/> 
</selector> 

,並在您BottomNavigationView一套應用程序:itemTextColor和應用:itemIconTint值爲@ color/bottom_nav_color

<android.support.design.widget.BottomNavigationView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/main_navigation" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    android:background="@color/actionBarColor" 
    app:menu="@menu/my_navigation_items" 
    app:itemTextColor="@color/bottom_nav_color" 
    app:itemIconTint="@color/bottom_nav_color"/> 
相關問題