FancyShowCaseView icon indicating copy to clipboard operation
FancyShowCaseView copied to clipboard

problem to focus on toolbar overflow menu items

Open mrez9 opened this issue 3 years ago • 3 comments

im trying to set FancyShowCaseView for items in overflow items of MaterialToolbar but view is null although fancyshowcaseview works for visible items in toolbar My code : (calling this code in onPrepareOptionsMenu/onCreateOptionsMenu witn Runnable)

fancyShowCaseViewToolbar1 = new FancyShowCaseView.Builder(PlayerNoActivity.this)
                        .focusOn(findViewById(R.id.menu_playerNo_add))
                        .title("add player")
                        .build();
fancyShowCaseViewToolbar2 = new FancyShowCaseView.Builder(PlayerNoActivity.this)
                        .focusOn(findViewById(R.id.menu_playerNo_randomName))
                        .title("random players")
                        .build();

menu xml:

<?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:id="@+id/menu_playerNo_sortDone"
        android:title="confirm"
        android:icon="@drawable/ic_baseline_done_24"
        app:showAsAction="always"
        android:visible="false"/>
    <group android:id="@+id/menu_playerNo_group">
        <item android:id="@+id/menu_playerNo_add"
            android:title="addPlayer"
            android:icon="@drawable/ic_baseline_add_circle_24"
            app:showAsAction="always"/>
        <item android:id="@+id/menu_playerNo_randomName"
            android:icon="@drawable/ic_baseline_group_add_24"
            android:title="random"
            app:showAsAction="never" />
        <item android:id="@+id/menu_playerNo_sort"
            android:icon="@drawable/ic_baseline_sort_24"
            android:title="sort"
            app:showAsAction="never"
            android:checked="false"/>
        <item android:id="@+id/menu_playerNo_help"
            android:title="help"
            android:icon="@drawable/ic_baseline_help_24"
            app:showAsAction="never"/>
        <item android:id="@+id/menu_playerNo_deleteAll"
            android:icon="@drawable/ic_baseline_delete_forever_24"
            android:title="delete all"
            app:showAsAction="never"/>
    </group>
</menu>

fancyShowCaseViewToolbar1 works fine but fancyShowCaseViewToolbar2 dosent work i tried remove group but still didnt work FancyShowCaseView version: 1.3.5

mrez9 avatar Mar 26 '21 15:03 mrez9

View is not laid out in onPrepareOptionsMenu/onCreateOptionsMenu methods. Can you trigger your runnable in view.post or view.postDelayed methods?

faruktoptas avatar Mar 27 '21 13:03 faruktoptas

public boolean onPrepareOptionsMenu(final Menu menu) {
        menu.clear();
        getMenuInflater().inflate(R.menu.player_no_menu,menu);
        new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
                fancyShowCaseViewToolbar1 = new FancyShowCaseView.Builder(PlayerNoActivity.this)
                        .focusOn(findViewById(R.id.menu_playerNo_add))
                        .title("add player")
                        .build();
                fancyShowCaseViewToolbar2 = new FancyShowCaseView.Builder(PlayerNoActivity.this)
                        .focusOn(findViewById(R.id.menu_playerNo_randomName))
                        .title("random players")
                        .build();
            }
        },50);
        return super.onCreateOptionsMenu(menu);
    }

views inside toolbar work fine but view inside overflow menu is unreachable

mrez9 avatar Mar 27 '21 20:03 mrez9

You should access the view reference of menu items. https://stackoverflow.com/questions/8614293/android-get-view-reference-to-a-menu-item

faruktoptas avatar Mar 29 '21 19:03 faruktoptas

issue closed due to inactivity

faruktoptas avatar Dec 23 '23 10:12 faruktoptas