我正在开发一个应用程序(作为第一个应用程序),在这个应用程序中,我这样声明了navigationVIEw:
<androID.support.design.Widget.NavigationVIEw androID:layout_wIDth="wrap_content" androID:layout_height="match_parent" androID:ID="@+ID/navigation_drawer" androID:layout_gravity="start" androID:fitsSystemwindows="true" app:menu="@menu/drawer_menu" app:headerLayout="@layout/drawer_header">
在我的mainactivity.java中,我有:
public class MainActivity extends AppCompatActivity implementsNavigationVIEw.OnNavigationItemSelectedListener{...@OverrIDepublic boolean onNavigationItemSelected(@NonNull MenuItem item) { Log.d("Navigation","Item selected : "+ item.getItemID()); int ID = item.getItemID(); switch (ID){ case R.ID.about: Toast.makeText(getApplicationContext(),"About Us elected",Toast.LENGTH_SHORT).show(); break; case R.ID.help: Toast.makeText(getApplicationContext(),"Help",Toast.LENGTH_SHORT).show(); break; case R.ID.setting: Toast.makeText(getApplicationContext(), "Settings",Toast.LENGTH_SHORT).show(); break; case R.ID.EditProfile:{ Intent intent= new Intent(this , EditProfile.class); startActivity(intent); } default: break; } DrawerLayout drawerLayout= (DrawerLayout) findVIEwByID(R.ID.drawer_layout); drawerLayout.closeDrawer(GravityCompat.START); return false;}
根据this,我扩展了ActionbarDrawerToggle,在它的onDrawerOpened函数中,我没有
drawerVIEw.bringToFront();drawerVIEw.getParent().requestLayout();
但是,当我单击导航视图时,仍然不会触发onNavigationItemSelected函数上的项.
是因为我添加了标题视图吗?
在将标题视图添加到navigationVIEw之前,此方法有效(我只是在将标题添加到navigationVIEw之前没有对其进行测试.
另外,我认为值得注意的是,navigationVIEw标头中有一些按钮和TextVIEws.
<?xml version="1.0" enCoding="utf-8"?><linearLayout 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" androID:orIEntation="vertical" androID:ID="@+ID/drawer_header" androID:background="@drawable/drawer_bg" androID:layout_wIDth="match_parent" androID:padding="4dp" androID:layout_height="200dp"> <relativeLayout androID:gravity="center_vertical" androID:orIEntation="horizontal" androID:layout_wIDth="match_parent" androID:layout_margintop="50dp" androID:layout_gravity="center" androID:layout_height="wrap_content"> <de.hdodenhof.circleimagevIEw.circleimageVIEw xmlns:app="http://schemas.androID.com/apk/res-auto" androID:layout_wIDth="80dp" androID:layout_height="80dp" androID:src="@drawable/avatar" androID:ID="@+ID/AvatarImageVIEw" androID:layout_centerHorizontal="true" /> <button androID:text="Signup" androID:layout_wIDth="55dp" androID:layout_height="55dp" androID:layout_alignParentRight="true" androID:ID="@+ID/header_signup" androID:textSize="12sp" androID:background="@drawable/signup_button" androID:textStyle="normal|bold" /> </relativeLayout> <TextVIEw androID:textcolor="@color/colorPrimaryDark" androID:layout_wIDth="match_parent" androID:layout_centerHorizontal="true" androID:layout_height="wrap_content" androID:ID="@+ID/header_username" androID:textAlignment="center" /> <TextVIEw androID:text="logout" androID:textcolor="@color/colorPrimaryDark" androID:layout_wIDth="match_parent" androID:layout_centerHorizontal="true" androID:textAlignment="center" androID:layout_height="wrap_content" androID:ID="@+ID/header_logout" /></linearLayout>
解决方法:
您应该在onCreate中为菜单项的Click Listener添加以下代码行,
NavigationVIEw navigationVIEw = (NavigationVIEw) findVIEwByID(R.ID. navigation_drawer);navigationVIEw.setNavigationItemSelectedListener(this);
总结 以上是内存溢出为你收集整理的标题设置为onItemClick的Android navigationview不起作用全部内容,希望文章能够帮你解决标题设置为onItemClick的Android navigationview不起作用所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)