Я использую MaterialShowcaseView , чтобы предоставить пользователям обзор моего приложения.установить цель для витрины, это должно быть View
.Ниже приведен пример последовательности:
String SHOWCASE_ID = getString(R.string.showcase_id);
ShowcaseConfig config = new ShowcaseConfig();
config.setDelay(500); // half second between each showcase view
MaterialShowcaseSequence sequence = new MaterialShowcaseSequence(this, SHOWCASE_ID);
sequence.setConfig(config);
...
sequence.addSequenceItem(
new MaterialShowcaseView.Builder(this)
.setTarget(findViewById(R.id.navigation_header))
.setDismissText(getString("GOT IT"))
.setTitleText(getString(R.string.onboarding_navigation_header_title))
.setContentText(getString(R.string.onboarding_navigation_header_content))
.withRectangleShape(false)
.build());
...
sequence.start();
В этом примере я нацеливаю заголовок навигации следующего NavigationView
:
<android.support.design.widget.NavigationView
android:id="@+id/nav_view"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
android:fitsSystemWindows="true"
app:menu="@menu/main_navigation"
app:headerLayout="@layout/nav_header"/>
Как получить менюв приведенном выше фрагменте как View
, чтобы я мог передать это в setTarget()
для моей последовательности витрины?
Я пробовал использовать только NavigationView
, но это нацелено как на макет заголовка, так и на меню.Я также пытался получить группу меню по идентификатору (findViewById(R.id.menu_group_id)
), но я не думаю, что технически группа меню является View
.Я могу получить меню через NavigationView.getMenu()
, но это возвращает объект Menu
.Любые идеи?
Редактировать: все меню должно быть нацелено.С другой стороны, это NavigationView
существует в DrawerLayout
, если это что-то меняет.