J'ai besoin d'un moyen de changer la couleur d'arrière-plan de l'élément de menu, comme le fait l'application twitter avant de montrer une image en mode plein écran.Comment changer la couleur d'arrière-plan de l'élément de menu de la barre d'outils?
Répondre
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);
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/
Je n'ai pas besoin d'onglets, j'ai besoin de changer un arrière-plan pour deux éléments de menu –
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 –
Je parle de dos et 3 icônes de points –
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.
Vous voulez ces deux images circulaires pour le menu? – Ankita
est-ce un élément de menu? ou un onglet? –
@Ankita oui, deux images circulaires –