Giter VIP home page Giter VIP logo

android-navigation-drawer's Introduction

Android Navigation Drawer |Custom Navigation Drawer |Create Navigation Drawer Activity

image image

##xml file

` <androidx.drawerlayout.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:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/drawer_layout" tools:context=".MainActivity">

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    >
    <LinearLayout
        android:id="@+id/appBar"
        android:layout_width="match_parent"
        android:layout_height="?actionBarSize"
        android:background="?attr/colorPrimary"
        android:gravity="center_horizontal"
        android:orientation="horizontal"
        android:paddingStart="15dp"
        android:paddingEnd="15dp"
        android:visibility="visible">

        <ImageView
            android:id="@+id/imageMenu"
            android:layout_width="30dp"
            android:layout_height="30dp"
            android:layout_gravity="center"
            android:src="@drawable/ic_menu"
            app:tint="#FFFFFF" />

        <TextView
            android:id="@+id/textTitle"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_marginLeft="15dp"
            android:text="@string/app_name"
            android:textColor="@color/white"
            android:textSize="18sp"
            android:textStyle="bold" />

    </LinearLayout>
    
</RelativeLayout>


<com.google.android.material.navigation.NavigationView
    android:id="@+id/nav_View"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    app:headerLayout="@layout/drawar_head_layout"
    app:menu="@menu/navigation_menu" />

</androidx.drawerlayout.widget.DrawerLayout>`

##Menu

`

<group
    android:id="@+id/group1"
    android:checkableBehavior="single">
    <item android:title="Task">
        <menu>

            <item
                android:id="@+id/mHome"
                android:icon="@drawable/ic_menu"
                android:title="Home" />

            <item
                android:id="@+id/mShare"
                android:icon="@drawable/ic_menu"
                android:title="Share" />

            <item
                android:id="@+id/mDashboard"
                android:icon="@drawable/ic_menu"
                android:title="Dashboard" />

            <item
                android:id="@+id/mRate"
                android:icon="@drawable/ic_menu"
                android:title="Rate Me" />

        </menu>

    </item>

</group>

<group
    android:id="@+id/group2"
    android:checkableBehavior="single">
    <item android:title="More App">

        <menu>
            <item
                android:id="@+id/shareapp"
                android:icon="@drawable/ic_menu"
                android:title="Share App" />

            <item
                android:id="@+id/Policy"
                android:icon="@drawable/ic_menu"
                android:title="Policy" />
        </menu>

    </item>

</group>
`

##Header Layout

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:app="http://schemas.android.com/apk/res-auto">


    <LinearLayout
        android:layout_marginBottom="15dp"
        android:layout_marginTop="25dp"
        android:id="@+id/drawarHeader"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        >

        <ImageView
            android:layout_marginLeft="10dp"
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:src="@mipmap/ic_launcher"
            />

        <LinearLayout
            android:layout_gravity="center"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            >
            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:textColor="?attr/colorPrimary"
                android:textStyle="bold"
                android:text="@string/app_name"
                android:layout_marginLeft="10dp"
                android:textSize="20sp"
                />

            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:textColor="#AE000000"
                android:text="@string/app_name"
                android:layout_marginLeft="10dp"
                android:textSize="18sp"
                />

        </LinearLayout>

    </LinearLayout>

    <View
        android:elevation="5dp"
        android:layout_below="@id/drawarHeader"
        android:layout_width="match_parent"
        android:layout_height="2dp"
        android:background="#43000000"
        />

</RelativeLayout>```

##Java Code

```java
public class MainActivity extends AppCompatActivity {

    DrawerLayout drawerLayout;
    NavigationView navigationView;
    ActionBarDrawerToggle toggle;

    ImageView imageMenu;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // Navagation Drawar------------------------------
        drawerLayout = findViewById(R.id.drawer_layout);
        navigationView = findViewById(R.id.nav_View);
        imageMenu = findViewById(R.id.imageMenu);

        toggle = new ActionBarDrawerToggle(MainActivity.this, drawerLayout, R.string.open, R.string.close);
        drawerLayout.addDrawerListener(toggle);
        toggle.syncState();
        //getSupportActionBar().setDisplayHomeAsUpEnabled(true);

        // Drawar click event
        // Drawer item Click event ------
        navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
            @Override
            public boolean onNavigationItemSelected(@NonNull MenuItem item) {

                switch (item.getItemId()) {
                    case R.id.mHome:
                        Toast.makeText(MainActivity.this, "Clicked", Toast.LENGTH_SHORT).show();
                        drawerLayout.closeDrawers();
                        break;

                    case R.id.mShare:
                        Toast.makeText(MainActivity.this, "Facebook", Toast.LENGTH_SHORT).show();
                        drawerLayout.closeDrawers();
                        break;

                }

                return false;
            }
        });
        //------------------------------

        // ------------------------
        // App Bar Click Event
        imageMenu = findViewById(R.id.imageMenu);

        imageMenu.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                // Code Here
                drawerLayout.openDrawer(GravityCompat.START);
            }
        });


        // ------------------------


    } // OnCreate Method Close here ==============

} // Public Class CLose Here =====================

android-navigation-drawer's People

Contributors

shmilon avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.