【发布时间】:2019-06-09 07:30:00
【问题描述】:
我的代码有问题,当我点击它时,应用程序不执行可点击的图像并且不显示 Toast 消息
我已经尝试过这个链接,但没有成功 OnClick for navigation drawer header not working
这是我的主要活动:
NavigationView navigationView = (NavigationView)
findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);
View headerview = navigationView.getHeaderView(0);
ImageView imageButton = (ImageView)
headerview.findViewById(R.id.login);
LinearLayout header = (LinearLayout)
headerview.findViewById(R.id.header);
header.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getApplicationContext(),"Hello
Javatpoint",Toast.LENGTH_SHORT).show();
}
});
这是我的标头 xml:
<?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"
android:layout_width="match_parent"
android:layout_height="@dimen/nav_header_height"
android:background="@color/splashBackground"
android:gravity="bottom"
android:id="@+id/header"
android:orientation="vertical"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
android:theme="@style/ThemeOverlay.AppCompat.Dark">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="75dp"
android:layout_marginTop="10dp"
android:layout_marginBottom="15dp"
android:orientation="vertical">
<ImageView
android:id="@+id/imageView"
android:layout_width="100dp"
android:layout_height="80dp"
android:contentDescription="@string/nav_header_desc"
android:paddingTop="@dimen/nav_header_vertical_spacing"
app:srcCompat="@drawable/realprolinklogo" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="REAL PROLINK"
android:textAppearance="@style/TextAppearance"
android:textColor="@color/splashText"
android:textSize="13dp"
android:textStyle="bold" />
</LinearLayout>
<ImageView
android:id="@+id/login"
android:layout_width="125dp"
android:layout_height="35dp"
android:layout_marginLeft="62dp"
app:srcCompat="@drawable/loginsignup"/>
</LinearLayout>
这是我的导航视图:
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout
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:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:openDrawer="start">
<include
layout="@layout/app_bar_main2"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<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:headerLayout="@layout/nav_header_main2"
app:menu="@menu/activity_main2_drawer" />
</android.support.v4.widget.DrawerLayout>
没有错误信息
但预期的结果并没有出现
【问题讨论】:
-
嘿 Ahsan,你能把你的 nav_view 布局也发布一下吗?我有一个类似的问题,我能够解决它。尝试将您的 LinearLayout 标头放在 nav_view 中,而不是使用单独的布局
-
添加了@YunusKulyyev
-
为什么要把监听器设置为布局?将其设置为
imageButton。 -
@forpas 我将其更改为图像按钮,但仍然不显示 toast 消息
-
ImageButton imageButton = (ImageButton) headerview.findViewById(R.id.login);
标签: android header navigation