Почему это повредит мой файл yaml?

Вот как я это сделал:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.menu_main, menu);
    MenuItem item = menu.findItem(R.id.no_toast);
    item.setActionView(R.layout.custom_view);
    item.getActionView().setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            //handle click (just this item)
        }
    });
    return true;
}

, и это мое меню:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">

    <item
        android:title="Never gonna see me in a toast!"
        app:showAsAction="always"
        android:id="@+id/no_toast" />
</menu>

мой пользовательский вид - это просто ImageButton:

<?xml version="1.0" encoding="utf-8"?>
<ImageButton xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    style="@style/Widget.AppCompat.Toolbar.Button.Navigation"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:src="@drawable/icon" />

Примечание: не забудьте установить стиль, Widget.AppCompat.Toolbar.Button.Navigation позволяет правильно отображать IamgeButton на панели инструментов.

PS: Лично я предпочитаю поведение по умолчанию, но это был мой случай : Я отключил право налево для своего приложения, и после этого, когда я установил языковой стандарт по умолчанию на язык rtl , тост появлялся не в ту сторону! Честно говоря, я торопился и не узнал причину, но я буду признателен, если кто-нибудь сообщит мне, почему, во всяком случае, так я прошел.

0
задан Sandra Schlichting 5 September 2012 в 14:01
поделиться