【问题标题】:Make the header of the new navigation drawer view clickable使新的导航抽屉视图的标题可点击
【发布时间】:2016-02-01 00:50:10
【问题描述】:

我的问题:

我有一个 MainActivity 及其 XML 文件 activity_main.xml ,其中包含一个 NavigationDrawer 视图,该视图调用一个 header.xml 文件以显示在我的抽屉中。

问题是我的头文件包含一个按钮,因此当我单击标题时它会打开一个站点。然而,自从将我的Android studio 构建工具升级到23.0.2 之后,onClick() 中的MainActivity 中的按钮会使应用程序崩溃,给我一个NullPointerException

我认为它崩溃是因为头文件与我的activity_main.xml 完全不同,所以我的MainActivity 无法直接访问头文件内的视图。

如何访问header.xml 文件中的按钮并设置为clickable

【问题讨论】:

    标签: android android-layout android-activity android-sdk-tools


    【解决方案1】:

    已解决:

    NullPointerException 是由于包含我的 Button 的布局(Header.xml)对于 MainActivity 的 xml 布局来说不容易获得,因此 findViewById 将始终为 null,因为对于它,按钮不存在。通过将 header.xml 及其所有内容(特别是按钮)包含到 MainActivity.xml 的 NavigationView 中解决了这个问题

    像这样:

    <android.support.v4.widget.DrawerLayout ....>
    
    <RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">
    
    <include
        android:id="@+id/toolbar"
        layout="@layout/tool_bar" />
    
    ....
    
    </RelativeLayout>
    
    
    <android.support.design.widget.NavigationView
    ...
    
    <include
        layout="@layout/header" />
    
    </android.support.v4.widget.DrawerLayout>
    

    【讨论】:

    • 我面临这个问题并且无法解决它,我没有使用导航抽屉我使用recycleview with(header,items) 如何在
    【解决方案2】:

    您可以在活动的 onCreate() 方法中设置 NavigationView 的 HeaderView,并为标题视图设置一个侦听器,例如:

    yourNavigationView.addHeaderView(yourHeaderView);
    yourHeaderView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                // Handle the click event
            }
        });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-22
      相关资源
      最近更新 更多