- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我在 DrawerLayout 中使用 NavigationView,我不确定我是否忘记了什么,但只是在我单击它时隐藏了 Navigation。
这是我的代码:
主要 Activity .java:
private void instantiateDrawerLayout() {
Toolbar mToolbar = (Toolbar) generalContent.findViewById(R.id.toolbar);
mToolbar.setBackgroundColor(getResources().getColor(R.color.colorMainActivity));
setSupportActionBar(mToolbar);
NavigationView navigationView = (NavigationView) findViewById(R.id.navigation_view);
navigationView.setItemIconTintList(ColorStateList.valueOf(getResources().getColor(R.color.colorMainActivity)));
navigationView.setNavigationItemSelectedListener(this);
Log.d("instantiateDrawerLayout", "called");
ActionBarDrawerToggle drawerToggle = new ActionBarDrawerToggle(this, mDrawer, mToolbar, R.string.drawer_open, R.string.drawer_close);
mDrawer.setDrawerListener(drawerToggle);
drawerToggle.syncState();
...
}
@Override
public boolean onNavigationItemSelected(MenuItem menuItem) {
Log.d("onNavigationItem", "called");
final int itemId = menuItem.getItemId();
Intent intent;
switch (itemId) {
case R.id.navigation_item_1:
hideDrawer();
break;
case R.id.navigation_item_2:
intent = new Intent(this, FirstActivity.class);
startActivity(intent);
this.finish();
break;
case R.id.navigation_item_3:
intent = new Intent(this, SecondActivity.class);
startActivity(intent);
this.finish();
break;
case R.id.navigation_item_4:
intent = new Intent(this, ThirdActivity.class);
startActivity(intent);
this.finish();
break;
}
return false;
}
activity_general.xml
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/colorBackground">
<android.support.design.widget.NavigationView
android:id="@+id/navigation_view"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
app:headerLayout="@layout/drawer_header"
app:itemIconTint="@color/colorAccent"
app:menu="@menu/menu_drawer" />
<LinearLayout
android:id="@+id/main_content"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:animateLayoutChanges="true"
android:orientation="vertical" />
菜单抽屉.xml
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<!--All the items added without any grouping-->
<item
android:id="@+id/navigation_item_1"
android:icon="@drawable/ic_number_1"
android:title="@string/navigation_item_1" />
<item
android:id="@+id/navigation_item_2"
android:icon="@drawable/ic_number_2"
android:title="@string/navigation_item_2" />
<item
android:id="@+id/navigation_item_3"
android:icon="@drawable/ic_number_3"
android:title="@string/navigation_item_3" />
<item
android:id="@+id/navigation_item_4"
android:icon="@drawable/ic_number_4"
android:title="@string/navigation_item_4" />
</menu>
和我的 Logcat:
最佳答案
我解决了,是为了Layout中的orden。
如您所见,我将 NavigationView 放在第一位,这导致当我点击 NavigationView 时认为我点击了 LinearLayout,或者我认为这就是发生的事情。
只需更改顺序即可。
关于android - 导航 View 未调用 onNavigationItemSelected 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34539287/
当单击任何菜单项时,没有响应,他们应该导航到目标 fragment @Override public boolean onNavigationItemSelected(@NonNull
我想在有人点击导航 View 时调用 onNavigationItemSelected。代码不调用 onNavigationItemSelected 方法: public boolean onNav
我正在为 android 3+ 开发 在我的操作栏中,我有一个下拉列表(请参阅 how to hide/unhide the actionbar list on android 3? 了解我想要的下拉
我在我的应用程序中实现了一个导航 View ,它是由 AndroidStudio 自动创建的。当我创建一个新项目时,我选择了 NavigationDrawer Activity,菜单项看起来没问题,但
当我编写 mNavigationView.setNavigationItemSelectedListener(this); 时,应用程序崩溃在代码中如果未添加,则会删除导航栏中该项目的功能。我应该在后
我正在为一个包含抽屉的工程设计项目开发 Android 应用。我的一位小组成员选择使用 android.support.design.widget.NavigationView API 来执行此操作,
我正在使用 ActionBarSherlock 来显示微调器: ActionBar bar = getSupportActionBar(); bar.setNavigationMode(ActionB
所以我在 StackOverFlow 上浏览了很多答案,但无法正常工作。我想在抽屉导航项目点击时切换 fragment 。我在 Android Studio 1.5 中使用默认的抽屉导航。 我关注了t
请有人帮我处理抽屉导航中的 fragment ,出于某种原因我无法让它们工作,但所有代码看起来都正确。 Here是源代码的链接。 最佳答案 使用这段代码: navigationView = (Navi
我有一个包含 3 个菜单项的抽屉导航。在我的 MainActivity.java 中,我设置了 onNavigationItemSelected() 监听器来处理单击的导航项。单击时,将显示一个自定义
我正在使用 Google+ 登录,这会导致 Navigation.activity。我已经按照 Google 开发人员的说明进行操作,但我只采用了登录方法(成功),但现在我卡在了 navigation
我想在应用程序启动时选择抽屉导航中的特定项目。我在 visual studio 默认模板中添加了 navigationView.SetCheckedItem(Resource.Id.nav_galle
我在 Kotlin 中制作了抽屉菜单,我想使用这个菜单项。在 java 中,我调用了 onNavigationItemSelected 方法,但是当我想在 Kotlin 中使用它时,它没有出现。这是我
我有一个 BottomNavigationView在我与 onNavigationItemSelected 的 Activity 中听众。 我有两个问题: 是否 setSelectedItemId方法
我有一个 ViewPager 托管在一个 fragment 中,该 fragment 托管两个 ListFragments,这两个 ListFragments 由从 SQLite 查询返回的 Curs
我想在下面的 Activity 中的操作栏中使用微调器是 onCreateOptionsMenu:我使用 this tutorial实现这种方法。我的问题是当 Activity 是午餐时,onNavi
我将 ActionBar 与下拉菜单一起使用,onNavigationItemSelected() 在 Activity 创建后立即被调用,因此第一个项目被调用。我的下拉菜单的第一项是主页,与使用 a
我在 DrawerLayout 中使用 NavigationView,我不确定我是否忘记了什么,但只是在我单击它时隐藏了 Navigation。 这是我的代码: 主要 Activity .java:
我已经实现了选项卡 View 以及水平滑动 View (以更改选项卡),导航模式作为应用程序的列表。我正在使用 ActionBarSherlock 和 TabPageIndicator。更改标签后,我
我从 Android Studio 3.5 模板创建了一个新的抽屉导航 Activity ,但即使我正在监听 NavigationItemSelected,菜单项也无法单击。 public class
我是一名优秀的程序员,十分优秀!