BottomNavigationView Original icon color 同じアイコンの色を維持することができます。しかし、アイコンが選択されていて、選択されていないタブに対して異なる灰色の色を保っている場合に限り、それを保持することは可能ですか? これは私のアイコンの色を変更するためのコードです。 state_checkedでここBottomNavigationオリジナルのアイコンの色をチェックしたり、チェックしたりしないでください。
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:color="@color/colorSecondary"
android:state_checked="true"/>
<item
android:color="#bebebe"
android:state_checked="false"/>
私は@nullを与えてみましたが、それはただのアイコンがピンクがかっなります。私はそれがチェックされているときにアイコンの色を保持したい。出来ますか?
注:bNavigationView.setIconTintList(null)を使用しても試してみました。すべてのアイコンの色が元の色に変わります。
public class MainActivity extends AppCompatActivity {
Toolbar toolbar;
BottomNavigationView bNavigationView;
BottomNavigationView.OnNavigationItemSelectedListener
mOnNavigationItemSelectedListener
= new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
switch (item.getItemId()) {
case R.id.navigation_account:
// AS gives me an error here saying setItemIconTintList cannot be applied to (int,null)
bNavigationView.setItemIconTintList(0,null);
fragmentTransaction.replace(R.id.content,new AccountFragment()).commit();
break;
case R.id.navigation_technical:
fragmentTransaction.replace(R.id.content,new TechnicalEventsFragment()).commit();
break;
case R.id.navigation_corporate:
fragmentTransaction.replace(R.id.content,new CorporateEventsFragment()).commit();
break;
case R.id.navigation_cultural:
fragmentTransaction.replace(R.id.content,new CulturalEventsFragment()).commit();
break;
case R.id.navigation_dashboard:
fragmentTransaction.replace(R.id.content,new DashboardFragment()).commit();
break;
}
return true;
}
};
をonNavigationItemSelectedことを行うことができます@ color/colorSecondary "' – vm345
state_checkedで色を指定しないと、まだピンク色のように見えます。 – sanjeev