J'utilise la nouvelle barre d'applications Material Bottom sous Android. Je l'ai implémenté avec succès mais je ne sais pas comment ajouter des éléments de menu personnalisés à la barre. Chaque fois que j'ajoute les éléments de menu, ils apparaissent sous la forme de 3 points, même si l'option Android: showAsAction = "always" est fournie.
Je veux des icônes spécifiques comme la capture d'écran ci-dessous. Mais je reçois un résultat comme celui-ci .
Voici le code de mise en page.
<com.google.Android.material.bottomappbar.BottomAppBar
Android:id="@+id/bottom_app_bar"
style="@style/Widget.MaterialComponents.BottomAppBar"
Android:layout_width="match_parent"
Android:layout_height="50dp"
Android:layout_gravity="bottom"
app:backgroundTint="@color/colorPrimaryDark"
app:fabCradleMargin="5dp"
app:fabAlignmentMode="center"/>
<com.google.Android.material.floatingactionbutton.FloatingActionButton
Android:id="@+id/fab"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
app:layout_anchor="@id/bottom_app_bar" />
Et voici le code Java.
BottomAppBar bottomAppBar = (BottomAppBar) findViewById(R.id.bottom_app_bar);
setSupportActionBar(bottomAppBar);
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.navigation, menu);
return true;
}
Code de menu.
<item
Android:id="@+id/navigation_explore"
Android:icon="@drawable/explore"
Android:title="Explore"
Android:showAsAction="always"/>
<item
Android:id="@+id/navigation_profile"
Android:icon="@drawable/profile"
Android:title="Profile"
Android:showAsAction="always"/>
Après tant de recherches, j'ai finalement trouvé la solution au problème. Il suffit de changer l’espace de nommage de 'showAsAction' de 'Android' à 'app' pour que les choses fonctionnent.
<item
Android:id="@+id/navigation_explore"
Android:icon="@drawable/ic_search"
Android:title="Explore"
app:showAsAction="always" />
utiliser Android:showAsAction="ifRoom"
Je l’ai fait fonctionner avec la nouvelle barre d’application Material Bottom pour afficher des icônes.
https://developer.Android.com/guide/topics/resources/menu-resource
Essayez de définir fabCradleDiameter sur 0db dans le BottomAppBar comme suit: app:fabCradleDiameter="0dp"
Vous pouvez utiliser le menu contextuel pour cela. Placez une image de menu et cliquez sur l'image pour ouvrir le menu contextuel d'Android.
PopupMenu popup = new PopupMenu(MainActivity.this, button);
//Inflating the Popup using xml file
popup.getMenuInflater().inflate(R.menu.popup_menu, popup.getMenu());
//registering popup with OnMenuItemClickListener
popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
public boolean onMenuItemClick(MenuItem item) {
Toast.makeText(MainActivity.this,"You Clicked : " + item.getTitle(), Toast.LENGTH_SHORT).show();
return true;
}
});
popup.show();
Vous pouvez suivre le lien ci-dessous: https://www.javatpoint.com/Android-popup-menu-example