通过片段

时间:2015-07-17 23:31:54

标签: android button android-fragments

我正在尝试创建一个带有片段的应用程序作为菜单栏。

我的主要问题是,当我打开片段时,我可以看到它背后的按钮,甚至按下它们。

我当然不希望如此。我尝试将属性android:clickable =“true”添加到布局中,但它没有帮助。

这是我的代码:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"
    tools:context="ibuy.ibuy.AddUpdateItem">

    .
    .
    .
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/search_image"
        android:id="@+id/btnBrows"
        android:onClick="openItemTable"
        android:layout_alignTop="@+id/imageView"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />
    .
    .
    .

    <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"
        tools:context="ibuy.ibuy.AddUpdateItem"
        android:clickable="true">

        <fragment
            android:id="@+id/navigation_drawer"
            android:layout_width="@dimen/navigation_drawer_width"
            android:layout_height="match_parent"
            android:layout_gravity="start"
            android:name="Menus.smallMenu"
            tools:layout="@layout/fragment_navigation_drawer"
            android:alpha="255" />

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

这是其他文件上片段的listView的代码:

<ListView
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:choiceMode="singleChoice"
    android:divider="@android:color/transparent"
    android:dividerHeight="0dp"
    android:background="#cccc"
    tools:context="Menus.smallMenu"
    android:clickable="true"/>

我做错了什么? 提前谢谢!

2 个答案:

答案 0 :(得分:0)

我不知道你的意思是“我能看到它背后的按钮”。我假设你的意思是 DrawerLayout 用户界面。

1) 在这种情况下,您可以使用android:layout_below="@id/btnBrows"之类的属性。据我所知,所有的UI元素都应该被定位,否则它们可能会一个在另一个上面显示,就像你看到的那样。

2)另外一个问题是android:layout_width的{​​{1}}和layout_height都是match_parent,它填满了整个屏幕。它与按钮竞争屏幕空间。如果按钮位于DrawerLayout内,那么这不是问题,但这可能是您的故意设计。

答案 1 :(得分:0)

如果您使用的是Android Studio,请创建一个新的导航抽屉活动。看一下主要的XML布局。

DrawerLayout应该是您的根视图。在其中,您有RelativeLayout按钮 Fragment这是您的导航抽屉。

这样,两者都是分开的,导航抽屉在打开时正确重叠。