Android - 自定义导航抽屉背景列表滚动/聚焦

时间:2014-09-29 12:19:57

标签: android android-layout listview navigation-drawer

我有一个带有几个TextViews的自定义导航抽屉。这是布局:

<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <!-- The main content view -->
    <FrameLayout
        android:id="@+id/content_frame"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
    <!-- The navigation drawer -->

    <LinearLayout
        android:layout_width="240dp"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:background="@color/White"
        android:layout_gravity="start">

<TextView
            android:layout_width="fill_parent"
            android:layout_height="?android:attr/listPreferredItemHeightSmall"
            android:textStyle="bold|italic"
            android:gravity="center_vertical"
            android:layout_marginLeft="5dp"
            android:layout_marginStart="5dp"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:text="First Item" />

        <View
            android:layout_width="fill_parent"
            android:layout_height="3dp"
            android:background="@color/gplus_color_1" />

        <TextView
            android:layout_width="fill_parent"
            android:layout_height="?android:attr/listPreferredItemHeightSmall"
            android:textAppearance="?android:attr/textAppearanceListItemSmall"
            android:text="Second Item"
            android:gravity="center_vertical"
            android:layout_marginLeft="15dp"
            android:layout_marginStart="15dp"
            android:id="@+id/second" />


    </LinearLayout>

</android.support.v4.widget.DrawerLayout>

问题是,如果我没有为onClick()分配任何TextView,则触摸会反映在后台的ListView上。比方说,对于第二个TextView我分配了一个onClick监听器,但对于第一个TextView我没有,当我触摸第一个TextView时,抽屉后面的列表项被选中但不是为了第二个。打开抽屉时,如何将注意力集中在导航抽屉物品上?

1 个答案:

答案 0 :(得分:6)

将android:clickable =“true”添加到LinearLayout。 它不再关注背景列表。

<LinearLayout
    android:layout_width="240dp"
    android:layout_height="match_parent"
    android:clickable="true"
    android:orientation="vertical"
    android:background="@color/White"
    android:layout_gravity="start">