Araç çubuğunda bir taşma menüsü göstermek istiyorum (AppCompat-v7: 22.1.1), aşağıda menu_main.xml.Araç çubuğu taşma menüsünde menü öğesi simgesini gösterirken bu garip durum nasıl oluyor?
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context=".MainActivity">
<item
android:id="@+id/action_search"
android:title="@string/action_search"
android:icon="@mipmap/ic_menu_search"
android:orderInCategory="100"
android:actionViewClass="android.widget.SearchView"
app:showAsAction="ifRoom"/>
<item
android:id="@+id/menu_group_chat"
android:title="@string/menu_group_chat"
android:icon="@mipmap/ic_menu_groupchat" />
<item
android:id="@+id/menu_add_friend"
android:title="@string/menu_add_friend"
android:icon="@mipmap/ic_menu_add_friend" />
Uygulamamı çalıştırdıktan sonra, menü öğesinin simgesi görüntülenmez, o zaman ben, benim etkinliğinizi (AppCompatActivity uzanan) içinde onMenuOpened bir iptal yöntemi() ekleyin bu solution çalıştı
@Override
public boolean onMenuOpened(int featureId, Menu menu) {
if(menu!=null){
if(menu.getClass().getSimpleName().equals("MenuBuilder")){
try {
Method m = menu.getClass().getDeclaredMethod(
"setOptionalIconsVisible", Boolean.TYPE);
m.setAccessible(true);
m.invoke(menu, true);
} catch (Exception e) {
e.printStackTrace();
}
}
}
return super.onMenuOpened(featureId, menu);
}
Ancak bu demoyu çalıştırdıktan sonra, simgenin hala görüntülenmediğini görüyorum. Bu reported issue itibaren
, ben AppCompatActivity.onMenuOpened artık 22.x denilen olmadığını biliyorum ama ben Genymotion donanım menü tuşuna tıkladığınızda, menü altta görünen garip ve simgesiyle,
menüyü kapattıktan sonra, ben, menüde bu simgeler görünür, yine araç çubuğundaki taşma butonuna tıklayın
ne kadar garip! Bu neden oluyor? AppCompactActivity için
Bu zevk meselesi olabileceğinden MainActivity düzeni içinde eklenmiş fakat (menu.getClass(). Equals (MenuBuilder.class)) 'den daha şık olup olmadığını eğer' 'düşünüyorum '(menu.getClass(). getSimpleName(). ("MenuBuilder") eşittir). Daha az kodlanmış dizeleri daha iyi IMHO ;-) – Matthias
Yorumumu yoksay. Yolunuzu yapmak, Android'in yerel MenuBuilder ve AppCompat'ları için çalışmasını sağlar. İyi iş! – Matthias
Bu bir cevap olarak kabul edilmelidir. – Chitrang