2017-02-15 9 views
1

thisを参照してください。スケジュール[スケジュール]をクリックするとアクティビティが表示されますが、最初のアイテムの色(お気に入り)が常に選択されています。アイテムアイテムの色を[お気に入り]アイテムの色から変更しません。また、3番目の項目(音楽)。私はアンドロイドを使用します。ませアンドロイドをstate_checked:。。をstate_enabled」startActivityで作業している場合、それはお気に入りのアイテムの色からスケジュール項目の色を変更しないではない場合、それは色を変更する問題を選択し、この色を解決するためにどのようにの項目は、アンドロイドで選択された色です。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

はい、これらの3つのアクティビティを分割します – 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に選択されていないタブを色と選択したものから色付けするためにフィルタをクリアして、アイコンの元の色で表示されます。もちろん、選択すると別の色で塗ることもできます。それはあなた次第です。

希望すると、これが役立ちます。あなたに必要なものを

<?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> 

更新タブ項目の選択色:

乾杯、

RENC

+0

RelativeLayoutの代わりにtabLayoutを使用することを意味します。 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にシンプルなソリューションです。

8

解像度で色のディレクトリを作成して、下部のナビゲーション項目をカスタマイズ

のres /カラー/ bottom_nav_color.xmlための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"/> 
関連する問題