Итак, в основном мы внедрили панель навигации в наш проект вчера, и поскольку мы больше не можем нажимать на элементы на нашей странице, как будто ящик все еще перекрывает страницу, даже когда она закрыта, что позволяет нам щелкать что-либо на странице. Есть ли способ разрешить щелчок по элементам под этим «закрытым» навигационным ящиком?

Вот фрагмент одной из наших страниц, использующих панель навигации. Мы не можем нажать одну кнопку переключателя, даже когда ящик закрыт.

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.cocacola.fastgids.SettingsActivity">

    <android.support.v7.widget.Toolbar
        android:id="@+id/my_toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="?attr/colorPrimary"
        android:elevation="4dp"
        android:theme="@style/ThemeOverlay.AppCompat.ActionBar"
        app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>

    <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"
        android:elevation="4dp"
        >

        <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_main" app:menu="@menu/activity_main_drawer" />
    </android.support.v4.widget.DrawerLayout>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/setting_Bootanim"
        android:id="@+id/textView2"
        android:layout_marginLeft="22dp"
        android:layout_marginStart="22dp"
        android:layout_below="@+id/my_toolbar"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_marginTop="28dp" />

    <Switch
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/switchAnimation"
        android:checked="true"
        android:text="Disable/Enable"
        android:layout_below="@+id/textView2"
        android:layout_alignParentLeft="true"
        android:layout_marginLeft="21dp" />


</RelativeLayout>
2
Akorna 5 Янв 2016 в 11:45

2 ответа

Лучший ответ

Когда вы хотите использовать панель навигации, первым элементом вашего макета всегда должен быть макет drawerlayout. Взято с официального сайта разработчика Android:

Чтобы добавить панель навигации, объявите свой пользовательский интерфейс с помощью объекта DrawerLayout в качестве корневого представления вашего макета.

Я настоятельно рекомендую вам прочитать это с официального сайта Android. , и переделайте свой код.

1
Ludwig S 5 Янв 2016 в 09:11

Не добавляйте новый View в DrawerLayout, он может перехватить событие касания.

0
Michael 15 Фев 2016 в 11:22