在其他片段之上设置导航抽屉

Setting navigation drawer on top of other fragments

我有一个 activity 在其屏幕中使用了 Relativelayout。我的屏幕上还有一个导航抽屉。这是我的 ScreenShot

出现了一个问题,当导航抽屉打开时,Relativelayout 的元素放置在导航抽屉的顶部。所以我需要通过将我的导航设置在其他元素之上来解决这个问题。

请帮帮我。 谢谢

<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:background="@drawable/background_main"
tools:context="ir.kaasbarg.khoms.MainActivity" >


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

>

<!-- The main content view -->
<RelativeLayout
    android:id="@+id/mainContent"
    android:layout_width="match_parent"
    android:layout_height="match_parent" 

/>

<!-- The navigation drawer -->
<RelativeLayout
    android:layout_width="220dp"
    android:layout_height="match_parent"
    android:id="@+id/drawerPane"
    android:layout_gravity="end"

   >

    <!-- Profile Box -->
    <!-- List of Actions (pages) -->
    <ListView
        android:id="@+id/navList"
        android:layout_width="280dp"
        android:layout_height="match_parent"

        android:choiceMode="singleChoice"
        android:background="#202020" 

        />

</RelativeLayout>

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


<Button
    android:id="@+id/btndate"
    android:layout_width="match_parent"
    android:layout_height="50dp"
    android:layout_marginTop="200dp"
    android:background="@drawable/btn_main1"
    android:text="تاریخ سال خمسی"
    android:textSize="25sp"
    android:textColor="#ffffff"
    android:layout_marginRight="16dp"
    android:layout_marginLeft="16dp" />

<Button
    android:id="@+id/btnitems"
    android:layout_width="match_parent"
    android:layout_height="50dp"
    android:layout_marginTop="260dp"
    android:background="@drawable/btn_main1"
    android:text = "موارد خمس"
    android:textSize="25sp"
    android:textColor="#ffffff"
    android:layout_marginRight="16dp"
    android:layout_marginLeft="16dp" />

<Button
    android:id="@+id/btnkhoms"
    android:layout_width="match_parent"
    android:layout_height="50dp"
    android:layout_marginTop="320dp"
    android:background="@drawable/btn_main1"
    android:text="محاسبه ی خمس"
    android:textSize="25sp"
    android:textColor="#ffffff"
    android:layout_marginRight="16dp"
    android:layout_marginLeft="16dp" />


<Button
    android:id="@+id/btnhelp"
    android:layout_width="140dp"
    android:layout_height="50dp"
    android:layout_marginTop="380dp"
    android:layout_alignParentRight="true"
    android:background="@drawable/btn_main1"
    android:text="راهنما"
    android:textSize="25sp"
    android:textColor="#ffffff"
    android:layout_marginRight="16dp"
    android:layout_marginBottom="16dp" />


<Button
    android:id="@+id/btnexit"
    android:layout_width="140dp"
    android:layout_height="50dp"
    android:layout_marginTop="380dp"
    android:layout_alignParentLeft="true"
    android:background="@drawable/btn_main1"
    android:text="خروج"
    android:textSize="25sp" 
    android:textColor="#ffffff"
    android:layout_marginLeft="16dp"
    android:layout_marginBottom="16dp" />


    </RelativeLayout>

只需使用这个很棒的库https://github.com/mikepenz/MaterialDrawer

如果你想定制只是创建你自己的适配器或告诉我,我会帮助与你分享我的代码。

像下面这样更改布局:

<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:background="@drawable/background_main"
    tools:context="ir.kaasbarg.khoms.MainActivity">


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

        >

        <!-- The main content view -->
        <RelativeLayout
            android:id="@+id/mainContent"
            android:layout_width="match_parent"
            android:layout_height="match_parent">

            <Button
                android:id="@+id/btndate"
                android:layout_width="match_parent"
                android:layout_height="50dp"
                android:layout_marginLeft="16dp"
                android:layout_marginRight="16dp"
                android:layout_marginTop="200dp"
                android:background="@drawable/btn_main1"
                android:text="تاریخ سال خمسی"
                android:textColor="#ffffff"
                android:textSize="25sp" />

            <Button
                android:id="@+id/btnitems"
                android:layout_width="match_parent"
                android:layout_height="50dp"
                android:layout_marginLeft="16dp"
                android:layout_marginRight="16dp"
                android:layout_marginTop="260dp"
                android:background="@drawable/btn_main1"
                android:text="موارد خمس"
                android:textColor="#ffffff"
                android:textSize="25sp" />

            <Button
                android:id="@+id/btnkhoms"
                android:layout_width="match_parent"
                android:layout_height="50dp"
                android:layout_marginLeft="16dp"
                android:layout_marginRight="16dp"
                android:layout_marginTop="320dp"
                android:background="@drawable/btn_main1"
                android:text="محاسبه ی خمس"
                android:textColor="#ffffff"
                android:textSize="25sp" />


            <Button
                android:id="@+id/btnhelp"
                android:layout_width="140dp"
                android:layout_height="50dp"
                android:layout_alignParentRight="true"
                android:layout_marginBottom="16dp"
                android:layout_marginRight="16dp"
                android:layout_marginTop="380dp"
                android:background="@drawable/btn_main1"
                android:text="راهنما"
                android:textColor="#ffffff"
                android:textSize="25sp" />


            <Button
                android:id="@+id/btnexit"
                android:layout_width="140dp"
                android:layout_height="50dp"
                android:layout_alignParentLeft="true"
                android:layout_marginBottom="16dp"
                android:layout_marginLeft="16dp"
                android:layout_marginTop="380dp"
                android:background="@drawable/btn_main1"
                android:text="خروج"
                android:textColor="#ffffff"
                android:textSize="25sp" />

        </RelativeLayout>
        <!-- The navigation drawer -->
        <RelativeLayout
            android:id="@+id/drawerPane"
            android:layout_width="220dp"
            android:layout_height="match_parent"
            android:layout_gravity="end"

            >

            <!-- Profile Box -->
            <!-- List of Actions (pages) -->
            <ListView
                android:id="@+id/navList"
                android:layout_width="280dp"
                android:layout_height="match_parent"

                android:background="#202020"
                android:choiceMode="singleChoice"

                />

        </RelativeLayout>

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


</RelativeLayout>

你的按钮是内容的一部分,所以它们应该在 DrawerLayout 里面。使用 NavigationDrawer/NavigationView 时,DrawerLayout 应该是根视图,内容应该添加到里面,而不是外面。您可以在 post.

中阅读更多相关信息

因此您的文件应如下所示:

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

    <!-- The main content view -->
    <RelativeLayout
        android:id="@+id/mainContent"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

    <Button
        android:id="@+id/btndate"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:layout_marginTop="200dp"
        android:background="@drawable/btn_main1"
        android:text="تاریخ سال خمسی"
        android:textSize="25sp"
        android:textColor="#ffffff"
        android:layout_marginRight="16dp"
        android:layout_marginLeft="16dp" />

    <Button
        android:id="@+id/btnitems"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:layout_marginTop="260dp"
        android:background="@drawable/btn_main1"
        android:text = "موارد خمس"
        android:textSize="25sp"
        android:textColor="#ffffff"
        android:layout_marginRight="16dp"
        android:layout_marginLeft="16dp" />

    <Button
        android:id="@+id/btnkhoms"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:layout_marginTop="320dp"
        android:background="@drawable/btn_main1"
        android:text="محاسبه ی خمس"
        android:textSize="25sp"
        android:textColor="#ffffff"
        android:layout_marginRight="16dp"
        android:layout_marginLeft="16dp" />


    <Button
        android:id="@+id/btnhelp"
        android:layout_width="140dp"
        android:layout_height="50dp"
        android:layout_marginTop="380dp"
        android:layout_alignParentRight="true"
        android:background="@drawable/btn_main1"
        android:text="راهنما"
        android:textSize="25sp"
        android:textColor="#ffffff"
        android:layout_marginRight="16dp"
        android:layout_marginBottom="16dp" />


    <Button
        android:id="@+id/btnexit"
        android:layout_width="140dp"
        android:layout_height="50dp"
        android:layout_marginTop="380dp"
        android:layout_alignParentLeft="true"
        android:background="@drawable/btn_main1"
        android:text="خروج"
        android:textSize="25sp"
        android:textColor="#ffffff"
        android:layout_marginLeft="16dp"
        android:layout_marginBottom="16dp" />

    <!-- The navigation drawer -->
    <RelativeLayout
        android:layout_width="220dp"
        android:layout_height="match_parent"
        android:id="@+id/drawerPane"
        android:layout_gravity="end"

        >

        <!-- Profile Box -->
        <!-- List of Actions (pages) -->
        <ListView
            android:id="@+id/navList"
            android:layout_width="280dp"
            android:layout_height="match_parent"

            android:choiceMode="singleChoice"
            android:background="#202020"

            />

    </RelativeLayout>

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