2016-01-11 3 views
0

Я хочу создать пользовательский навигационный ящик, где я хочу, чтобы он был прокручиваемым.Как сделать ящик для навигации Android для прокрутки с заголовком Прокрутка

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="[email protected]" /> 

    </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> 
+0

'ScrollView' в качестве корневой точки зрения и положить' RelativeLayout' внутри него – Mohit

+0

https://github.com/rudsonlive/NavigationDrawer-MaterialDesign –

ответ

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.Or вы можете использовать ListView или RecyclerView основанное на вашем требовании, чтобы сделать часть прокрутки содержимого.

Но поскольку вы хотите, чтобы вся страница прокручивалась, включая часть заголовка, я предлагаю вам следовать первому варианту. Надеюсь, это поможет.

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="[email protected]" 
       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> 
+0

но когда я поместите прокрутку таким образом, тогда список json-данных скрывается. изменился весь макет. – arifhasnat

+0

сделал попытку создать его и запустить на эмуляторе или реальном устройстве.? –

+0

есть. но это дает неуместный результат. – arifhasnat