Когда я открываю свой ящик навигации в приложении Android, которое я создал, я все еще могу щелкнуть элементы списка в своем основном макете (макет содержимого). Я имею в виду, я на самом деле могу нажать на ListView
пункт через мой навигационный ящик. В ящике навигации еще нет элементов для клики, но я положил их на правильный FrameLayout
с белым фоном. Содержимое ящика, я проектирую в фрагменте. Вот мой код:Android: можно щелкнуть через навигационный ящик? AppCompat v7: r21
activity_home.xml (MainActivity)
<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/white"
tools:context=".HomeActivity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<include
android:id="@+id/toolbar_home"
layout="@layout/my_awesome_toolbar" />
<FrameLayout
android:id="@+id/main_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<FrameLayout
android:id="@+id/content_frame"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<ImageButton
android:id="@+id/fab_addContact"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end|bottom"
android:layout_marginBottom="@dimen/view_margin_large"
android:layout_marginEnd="@dimen/view_margin_large"
android:layout_marginRight="@dimen/view_margin_large"
android:background="@drawable/fab_button"
android:contentDescription="@string/fab_contDesc"
android:padding="@dimen/view_margin_large"
android:src="@drawable/ic_add_white_24dp" />
</FrameLayout>
</LinearLayout>
<FrameLayout
android:id="@+id/drawer_frame"
android:layout_width="300dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:background="@android:color/white"
android:clickable="true" />
</android.support.v4.widget.DrawerLayout>
fragment_drawer.xml (DrawerFragment идти в @+id/drawer_frame
)
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/white"
android:orientation="vertical">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="144dp">
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerCrop"
android:src="@drawable/material_design_wallpaper" />
<ImageView
android:id="@+id/iv_userThumbnail"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_margin="16dp"
android:background="@drawable/display_pic_thumbnail"
android:contentDescription="@string/contact_thumbnail" />
<View
android:layout_width="match_parent"
android:layout_height="@dimen/view_margin_xx_large"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:background="@drawable/shadow" />
<TextView
android:id="@+id/tv_userName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/tv_userEmail"
android:layout_alignLeft="@+id/tv_userEmail"
android:layout_alignStart="@+id/tv_userEmail"
android:layout_marginBottom="@dimen/view_margin_small"
android:text="Siddhant Chavlekar"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="@android:color/white"
android:textStyle="bold" />
<TextView
android:id="@+id/tv_userEmail"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_marginBottom="@dimen/view_margin_large"
android:layout_marginLeft="@dimen/view_margin_large"
android:layout_marginStart="@dimen/view_margin_large"
android:text="[email protected]"
android:textColor="@android:color/white" />
</RelativeLayout>
</LinearLayout>
Почему это происходит? Я использую библиотеку AppCompat v7:r21
для обеспечения обратной совместимости для своих приложений Lollipop (Material Design).
У меня был такой опыт перед выпуском android 21, я решил его, добавив эту строку в мои макеты внутри DrawerLayout 'android: clickable =" true "' – k0sh
@ k0sh так добавить его ко всем макетам внутри моего DrawerLayout или только ящика? – SynerFlow
Нет, вы добавляете его в макеты, которые находятся внутри drawerlayout, за исключением макета, который будет удерживать дочерние элементы ящика. – k0sh