I want to implement ScrollView in NavigationDrawer template of Android Studio. What do I need to do? How can make the full Navigation menu scrollable? I have a lot of options are here, but I can't scroll & view all of them Demo Image
Asked
Active
Viewed 482 times
1
-
I add my answer please have to look at that. – Tanveer Munir Feb 20 '19 at 07:37
-
any update about the future link? – shaikat saha Feb 22 '19 at 03:29
1 Answers
0
I am using for this including layout in navigationView
which I can easily manage.
Like this
<android.support.design.widget.NavigationView
android:id="@+id/nav_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="start"
android:layout_marginEnd="-65dp"
android:layout_marginRight="-65dp"
android:fitsSystemWindows="true">
<include
layout="@layout/nav_header_main_navigation"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</android.support.design.widget.NavigationView>
nav_header_main_navigation
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/app_gray"
android:gravity="bottom">
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout
android:id="@+id/rlTop"
android:layout_width="match_parent"
android:layout_height="88dp"
android:layout_alignParentTop="true"
android:background="@color/appYellow">
<TextView
android:id="@+id/tvName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_marginBottom="24dp"
android:layout_marginEnd="30dp"
android:layout_marginLeft="24dp"
android:layout_marginRight="30dp"
android:layout_marginStart="24dp"
android:ellipsize="end"
android:includeFontPadding="false"
android:maxEms="14"
android:maxLines="2"
android:textColor="@color/app_gray"
android:textSize="15sp" />
<RelativeLayout
android:id="@+id/rlBack"
android:layout_width="30dp"
android:layout_height="20dp"
android:layout_alignParentBottom="true"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_marginBottom="20dp"
android:clickable="true">
<ImageView
android:id="@+id/ivBack"
android:layout_width="10dp"
android:layout_height="20dp"
android:adjustViewBounds="true"
android:clickable="true"
android:scaleType="centerCrop"
android:src="@drawable/back_icon_black" />
</RelativeLayout>
</RelativeLayout>
<RelativeLayout
android:id="@+id/rlBottom"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@id/rlTop"
android:background="@color/app_gray">
<RelativeLayout
android:id="@+id/rlProfile"
android:layout_width="match_parent"
android:layout_height="48dp"
android:layout_marginTop="10dp">
<ImageView
android:id="@+id/ivProfile"
android:layout_width="19dp"
android:layout_height="19dp"
android:layout_centerVertical="true"
android:layout_marginLeft="24dp"
android:layout_marginStart="24dp"
android:src="@drawable/icon_nav_profile" />
<TextView
android:id="@+id/tvProfile"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="16dp"
android:layout_marginStart="16dp"
android:layout_toEndOf="@id/ivProfile"
android:layout_toRightOf="@id/ivProfile"
android:includeFontPadding="false"
android:paddingBottom="1dp"
android:paddingTop="1dp"
android:text="@string/profile"
android:textAlignment="viewStart"
android:textColor="@color/white"
android:textDirection="locale"
android:textSize="15sp" />
</RelativeLayout>
</RelativeLayout>
</RelativeLayout>
</ScrollView>
</RelativeLayout>
Here is my whole Navigation activity XML
<android.support.v4.widget.DrawerLayout
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:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:openDrawer="start">
<include
layout="@layout/app_bar_main_navigation"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<android.support.design.widget.NavigationView
android:id="@+id/nav_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="start"
android:layout_marginEnd="-65dp"
android:layout_marginRight="-65dp"
android:fitsSystemWindows="true">
<include
layout="@layout/nav_header_main_navigation"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</android.support.design.widget.NavigationView>
</android.support.v4.widget.DrawerLayout>
Here is a major factor to avoid ViewPager
app_bar_main_navigation
<android.support.design.widget.CoordinatorLayout
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="@color/app_gray"
tools:context="com.barq.consumer.ui.home.MainNavigationActivity">
<FrameLayout
android:id="@+id/flMain"
android:layout_width="match_parent"
android:layout_height="match_parent">
</FrameLayout>
</android.support.design.widget.CoordinatorLayout>
Now in MainNavigationActivity.Java
public class MainNavigationActivity extends BaseActivity {
@BindView(R.id.drawer_layout)
DrawerLayout drawer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main_navigation);
ButterKnife.bind(this);
//here is you can load your fragment without view pager
getSupportFragmentManager()
.beginTransaction()
.replace(R.id.flMain, HomeFragment.newInstance(), HomeFragment.TAG)
.commit();
}
And other clicks you can handle manually to load other fragments in frame layout and activities and drawer open and close you also handle manually use drawer object. Hope so you can understand it.
its an example for your easiness to avoid menu and use normal layouts in the scroll view. Here are more answers regarding the above example ULR

Tanveer Munir
- 1,956
- 1
- 12
- 27
-
-
@shaikatsaha can you upload your XML file then I will update it according to your scenario – Tanveer Munir Feb 21 '19 at 07:04
-
-
@shaikatsaha you are using viewPager to manipulate your fragments, therefore, you are not getting this technique. – Tanveer Munir Feb 22 '19 at 06:51
-
-
-