如何使用标题滚动使android导航抽屉滚动

时间:2016-01-11 05:44:02

标签: android navigation android-navigation-drawer

我想制作一个自定义导航抽屉,我希望它可以滚动。

enter image description here

这是我的布局。我以不同的方式尝试过它。 但它的滚动只有列表项而不是标题。所以我怎样才能使整个导航抽屉(包括标题)可滚动。

<?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:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:layout_scrollFlags="scroll|enterAlways"
    android:background="@drawable/bg_parent_rounded_corner"

    tools:context="com.ajkerdeal.app.Fragments.HomeCategoryFragment"
    android:weightSum="1">

    <LinearLayout
        app:layout_scrollFlags="scroll|enterAlways"
        android:id="@+id/line1"
        android:layout_width="match_parent"
        android:layout_height="160dp"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:background="@drawable/splash_background3"
        android:gravity="bottom"
        android:orientation="vertical"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        android:theme="@style/ThemeOverlay.AppCompat.Dark">


        <com.pkmmte.view.CircularImageView

            android:id="@+id/imageView"
            android:layout_width="70dp"
            android:layout_height="70dp"
            android:src="@drawable/sample_portrait"
            app:border="true"
            app:border_color="#EEEEEE"
            app:border_width="4dp"
            app:shadow="true" />



        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:paddingTop="@dimen/nav_header_vertical_spacing"
            android:text="Ehsanul Hauque"
            android:textColor="#000000"
            android:textAppearance="@style/TextAppearance.AppCompat.Body1" />

        <TextView
            android:textColor="#000000"

            android:id="@+id/textView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="ehsan@gmail.com" />

    </LinearLayout>


    <TextView


        android:background="#D8D8D8"
        android:gravity="center_vertical"
       android:paddingLeft="20dp"

        android:layout_width="409dp"
        android:layout_height="wrap_content"
        android:text="হোম"
        android:textStyle="bold"



        android:id="@+id/textView2"
         />




    <LinearLayout

        app:layout_scrollFlags="scroll|enterAlways"
        android:paddingTop="178dp"
        android:orientation="vertical"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:weightSum="1">




        <android.support.v7.widget.RecyclerView
            android:id="@+id/my_recycler_view_from_homecategoryfragment"
            android:scrollbars="vertical"
            android:layout_width="match_parent"
            android:onClick="viewClick"
            android:layout_height="wrap_content"

            android:clickable="true"
            android:focusable="true" />

        <EditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:inputType="textPostalAddress"
            android:ems="10"
            android:id="@+id/editText" />


    </LinearLayout>




</RelativeLayout>

2 个答案:

答案 0 :(得分:2)

您可以使用两个选项来使导航栏可滚动。

1.您可以将所有内容放在ScrollView中,以便整个页面将根据设备大小开始滚动。所以只需使用ScrollView作为根布局。我在下面发布了一个演示代码。

<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@mipmap/login_bg"
android:fitsSystemWindows="true">

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@mipmap/login_bg"
    android:orientation="vertical"
    android:padding="35dp"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"/>

2.或者您可以根据您的要求使用ListView或RecyclerView来使内容部分滚动。

但是你想要整个页面滚动包括标题部分,我建议你按照第一个选项。希望它会有所帮助。

答案 1 :(得分:1)

将您的所有内容放在scrollview

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">

    <RelativeLayout 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:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@drawable/bg_parent_rounded_corner"
        android:orientation="vertical"
        android:weightSum="1"
        app:layout_scrollFlags="scroll|enterAlways"
        tools:context="com.ajkerdeal.app.Fragments.HomeCategoryFragment">

        <LinearLayout
            xmlns:app="http://schemas.android.com/apk/res-auto"
            android:id="@+id/line1"
            android:layout_width="match_parent"
            android:layout_height="160dp"
            android:background="@drawable/splash_background3"
            android:gravity="bottom"
            android:orientation="vertical"
            android:paddingBottom="@dimen/activity_vertical_margin"
            android:paddingLeft="@dimen/activity_horizontal_margin"
            android:paddingRight="@dimen/activity_horizontal_margin"
            android:paddingTop="@dimen/activity_vertical_margin"
            android:theme="@style/ThemeOverlay.AppCompat.Dark"
            app:layout_scrollFlags="scroll|enterAlways">

            <com.pkmmte.view.CircularImageView
                android:id="@+id/imageView"
                android:layout_width="70dp"
                android:layout_height="70dp"
                android:src="@drawable/sample_portrait"
                app:border="true"
                app:border_color="#EEEEEE"
                app:border_width="4dp"
                app:shadow="true" />

            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:paddingTop="@dimen/nav_header_vertical_spacing"
                android:text="Ehsanul Hauque"
                android:textAppearance="@style/TextAppearance.AppCompat.Body1"
                android:textColor="#000000" />

            <TextView
                android:id="@+id/textView"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="ehsan@gmail.com"
                android:textColor="#000000" />
        </LinearLayout>

        <TextView
            android:id="@+id/textView2"
            android:layout_width="409dp"
            android:layout_height="wrap_content"
            android:background="#D8D8D8"
            android:gravity="center_vertical"
            android:paddingLeft="20dp"
            android:text="হোম"
            android:textStyle="bold" />

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true"
            android:orientation="vertical"
            android:paddingTop="178dp"
            android:weightSum="1"
            app:layout_scrollFlags="scroll|enterAlways">

            <android.support.v7.widget.RecyclerView
                android:id="@+id/my_recycler_view_from_homecategoryfragment"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:clickable="true"
                android:focusable="true"
                android:onClick="viewClick"
                android:scrollbars="vertical" />

            <EditText
                android:id="@+id/editText"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:ems="10"
                android:inputType="textPostalAddress" />

        </LinearLayout>
    </RelativeLayout>
</ScrollView>