В руководстве по моему приложению я хотел бы иметь возможность указывать на определенные значки в панели действий, например, с помощью желтой стрелки, указывающей на лампочку на рисунке ниже:
Вот код XML для пунктов меню, показанных на рисунке:
<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/AbErase"
android:icon="@android:drawable/ic_delete"
android:orderInCategory="10"
android:title="@string/Erase"
android:tooltipText="@string/Erase"
app:showAsAction="ifRoom|collapseActionView"
/>
<item android:id="@+id/AbImmediateImplementation"
android:title="@string/ImmediateImplementation"
android:checkable="true"
android:orderInCategory="20"
app:showAsAction="never|withText"
android:enabled="true" />
<item android:id="@+id/AbSuggest"
android:title="@string/Suggest"
android:tooltipText="@string/Suggest"
android:icon="@drawable/ic_lightbulb_outline_white_48dp"
android:orderInCategory="50"
app:showAsAction="ifRoom|collapseActionView" />
<item android:id="@+id/AbUndo"
android:title="@string/ActionBarUndo"
android:tooltipText="@string/ActionBarUndo"
android:icon="@android:drawable/ic_menu_revert"
android:orderInCategory="51"
app:showAsAction="ifRoom|collapseActionView" />
<item android:id="@+id/AbStep"
android:title="@string/ActionBarStep"
android:icon="@drawable/ic_play_arrow_white_24dp"
android:orderInCategory="100"
app:showAsAction="ifRoom|collapseActionView" />
.....
</menu>
Вот код, который я использовал чтобы получить View
, связанный с элементом меню AbErase :
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; mContext adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
actionBar.collapseActionView();
eraseItem = menu.findItem(id.AbErase);
View eraseItemView = eraseItem.getActionView();
int eraseItemViewLeft = eraseItemView.getLeft();
return super.onCreateOptionsMenu(menu);
}
Когда этот код выполняется, eraseItemView равен null . Как я могу получить Left координату каждого отдельного значка в меню?