2017-09-22 12 views

Répondre

0

Vous pouvez obtenir l'élément et l'avoir comme MenuItem, vous pouvez utiliser setActionView utiliser un fichier xml de mise en page que vous devez gonfler avant, quelque chose comme ce regard:

MenuItem alerts; 

ensuite sur votre onCreateOptionsMenu:

@Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     getMenuInflater().inflate(R.menu.menu_main, menu); 

     alerts = menu.findItem(R.id.alerts); 
     ... 

Et partout où vous avez besoin:

View view = getLayoutInflater().inflate(R.layout.notification_badge, null); 
    view.setOnClickListener(new View.OnClickListener() { 
     @Override 
      public void onClick(View v) { 
       startActivity(new Intent(v.getContext(), NotificationsActivity.class)); 
      } 
     }); 

Et enfin:

alerts.setActionView(view); 
0

Rendez-vous pour créer des icônes des onglets personnalisés meilleur exemple est comme ci-dessous

MainActivity public class étend AppCompatActivity {

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    ViewPager viewPager = (ViewPager) findViewById(R.id.viewPager); 

    viewPager.setAdapter(new TabPagerAdapter(getSupportFragmentManager())); 

    TabLayout tabLayout = (TabLayout) findViewById(R.id.tabLayout); 
    tabLayout.setupWithViewPager(viewPager); 

    TabLayout.Tab tabCall = tabLayout.getTabAt(0); 
    tabCall.setIcon(R.drawable.selector_call); 

    TabLayout.Tab tabHeart = tabLayout.getTabAt(1); 
    tabHeart.setIcon(R.drawable.selector_heart); 

    TabLayout.Tab tabContacts = tabLayout.getTabAt(2); 
    tabContacts.setIcon(R.drawable.selector_contacts); 
} 

class TabPagerAdapter extends FragmentPagerAdapter { 

    public TabPagerAdapter(FragmentManager fm) { 
     super(fm); 
    } 

    @Override 
    public int getCount() { 
     return 3; 
    } 

    @Override 
    public Fragment getItem(int position) { 

     switch (position) { 
      case 0: 
       return new CallFragment(); 
      case 1: 
       return new HeartFragment(); 
      case 2: 
       return new ContactsFragment(); 
     } 

     return null; 
    } 
} 

}

Utilisation un sélecteur:

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 

<item 
    android:state_selected="true" 
    android:drawable="@drawable/contacts_selected" /> 

<item 
    android:state_selected="false" 
    android:drawable="@drawable/contacts_unselected" /> 

Pour plus de détails Référence:

https://www.androidhive.info/2015/09/android-material-design-working-with-tabs/

+0

Je n'ai pas besoin d'onglets, j'ai besoin de changer un arrière-plan pour deux éléments de menu –

+0

Quoi que le menu définisse un sélecteur comme ressource d'image, et identifie l'image colorée comme sélectionnée et le gris comme sélectionné faux –

+0

Je parle de dos et 3 icônes de points –

0

Vous devez créer une couleur de paquet dans le dossier res, à l'intérieur du paquet de couleur créer un fichier XML comme ceci:

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_checked="true" android:color="@color/colorWhite" /> 
    <item android:color="@color/colorLightGrey" /> 
</selector> 

Ce fichier XML mettra votre article en blanc, quand ils sont sélectionnés ang gris sinon.

Pour utiliser ce fichier, vous devez simplement ajouter à votre point de vue de la navigation en bas:

app:itemIconTint="@color/nav_item_state_list" 
app:itemTextColor="@color/nav_item_state_list" 

nav_item_state_list est le fichier xml ci-dessus.