Align Custom View To Left Of Navigation Drawer
As you can see the custom layout is at the right and after some research I found that the blank space is reserved for icon and text of item. Is there a way to remove that blank spa
Solution 1:
Change your code according to my , its working . Take RelativeLayout
as parent (only change with your connect_us.xml):
connect_us.xml
<?xml version="1.0" encoding="utf-8"?><RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"android:background="#FFFFFF"android:gravity="left"><LinearLayoutandroid:orientation="horizontal"android:layout_width="match_parent"android:layout_height="wrap_content"><ImageViewandroid:id="@+id/connect_youtube"android:layout_width="50dp"android:layout_height="50dp"android:src="@mipmap/ic_launcher"android:padding="5dp" /><ImageViewandroid:id="@+id/connect_facebook"android:layout_width="50dp"android:layout_height="50dp"android:src="@mipmap/ic_launcher"android:padding="5dp"/><ImageViewandroid:id="@+id/connect_twitter"android:layout_width="50dp"android:layout_height="50dp"android:src="@mipmap/ic_launcher"android:padding="5dp"/></LinearLayout></RelativeLayout>
Second Solution :
In your main_activity.xml (fix the width of the Navigation drawer)
I used here
android.support.design.widget.NavigationView
to android:layout_width="320dp"
I know its not a proper solution to fix layout_width
.
<android.support.design.widget.NavigationView
android:id="@+id/nav_view"
android:layout_width="320dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:fitsSystemWindows="true"
app:headerLayout="@layout/nav_header_main"
app:menu="@menu/activity_main_drawer"
/>
And connect_us.xml layout also set the layout_width = "320dp"
<?xml version="1.0" encoding="utf-8"?><LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="320dp"android:layout_height="match_parent"android:background="@color/app_bg_color"android:orientation="horizontal"android:gravity="start"><ImageViewandroid:id="@+id/connect_youtube"android:layout_width="50dp"android:layout_height="50dp"android:src="@drawable/youtube_icon"android:layout_marginLeft="20dp"android:layout_marginStart="20dp"android:padding="5dp" /><ImageViewandroid:id="@+id/connect_facebook"android:layout_width="50dp"android:layout_height="50dp"android:src="@drawable/facebook_icon"android:padding="5dp"/><ImageViewandroid:id="@+id/connect_twitter"android:layout_width="50dp"android:layout_height="50dp"android:src="@drawable/twitter_icon"android:padding="5dp"/></LinearLayout>
Solution 2:
Try adding your navigation view and Custom Layout (connect_us) inside a NestedScrollView as below:-
<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">
<android.support.v4.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<android.support.design.widget.NavigationView
android:id="@+id/nav1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="start"
android:background="@color/bottom_navigation_color"
android:fitsSystemWindows="true"
android:theme="@style/NavigationView"
app:headerLayout="@layout/nav_header"
app:itemBackground="@color/app_bg_color"
app:itemIconTint="@color/text_white"
app:itemTextColor="@color/text_white"
app:menu="@menu/nav_drawer_items" />
<include
android:id="@+id/footer_layout"
layout="@layout/connect_us"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
</android.support.v4.widget.NestedScrollView>
</android.support.v4.widget.DrawerLayout>
Also, make sure to disable Nested Scrolling of NavigationView's child as below:-
ViewCompat.setNestedScrollingEnabled(navigationView.getChildAt(0), false);
Solution 3:
I got a solution for this use recyclerview
and inside your navigation view and add your views to recyclerview
and create your adapter :
<?xml version="1.0" encoding="utf-8"?><android.support.v4.widget.DrawerLayoutxmlns: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"><includelayout="@layout/app_bar_main"android:layout_width="match_parent"android:layout_height="match_parent" /><android.support.design.widget.NavigationViewandroid:id="@+id/nav_view"android:layout_width="320dp"android:layout_height="match_parent"android:layout_gravity="start"android:fitsSystemWindows="true"><LinearLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><includeandroid:id="@+id/my"layout="@layout/nav_header_main" /><android.support.v7.widget.RecyclerViewandroid:id="@+id/rvNavMenu"android:layout_width="match_parent"android:layout_height="0dp"android:layout_marginTop="10dp"android:layout_weight="7"android:overScrollMode="never" /></LinearLayout></android.support.design.widget.NavigationView></android.support.v4.widget.DrawerLayout>
Post a Comment for "Align Custom View To Left Of Navigation Drawer"