• Stars
    star
    318
  • Rank 131,872 (Top 3 %)
  • Language
    Java
  • License
    Apache License 2.0
  • Created over 12 years ago
  • Updated almost 11 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Implementation of "Side Navigation" or "Fly-in app menu" pattern for Android (based on Google+ app)

Android SideNavigation Library

Implementation of "Side Navigation" or "Fly-in app menu" pattern for Android (based on Google+ app).

Description

The Google+ app slides the navigation on top of the UI while the others move the UI to the side. Google+ also has the up caret icon and the action bar present when the menu is opened while other apps don't.

There was a interesting discussion about this pattern in the blog's Google+ page some time ago. You can find the post & discussion here: Google+.

Sample

A sample application is available on Google Play:

Get it on Google Play

Example Image Example Image

The source code is available in this repository.

Compatibility

This library is compatible from API 4 (Android 1.6).

Installation

The sample project requires:

Usage

SideNavigation is presented as an Android library project. You can include this project by referencing it as a library project in Eclipse or ant.

To display the item you need the following code:

  • Add SideNavigationView to the end of the layout. Example:
<?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" >

    <ImageView
        android:id="@android:id/icon"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:src="@drawable/ic_android_logo" />

    <com.devspark.sidenavigation.SideNavigationView
        android:id="@+id/side_navigation_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</RelativeLayout>
  • Create '.xml' description of the menu for the sideNavigationView. Example:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >

    <item
        android:id="@+id/side_navigation_menu_item1"
        android:icon="@drawable/ic_android1"
        android:title="@string/title1"/>
    <item
        android:id="@+id/side_navigation_menu_item2"
        android:icon="@drawable/ic_android2"
        android:title="@string/title2"/>
    <item
        android:id="@+id/side_navigation_menu_item3"
        android:icon="@drawable/ic_android3"
        android:title="@string/title3"/>
    <item
        android:id="@+id/side_navigation_menu_item4"
        android:icon="@drawable/ic_android4"
        android:title="@string/title4"/>
    <item
        android:id="@+id/side_navigation_menu_item5"
        android:icon="@drawable/ic_android5"
        android:title="@string/title5"/>

</menu>
  • Set home should be displayed as an "up" and initialize the sideNavigationView:
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
	setContentView(R.layout.activity_main);
    // other code
    
    sideNavigationView = (SideNavigationView) findViewById(R.id.side_navigation_view);
    sideNavigationView.setMenuItems(R.menu.side_navigation_menu);
	sideNavigationView.setMenuClickCallback(/*ISideNavigationCallback*/);
	sideNavigationView.setMode(/*SideNavigationView.Mode*/);
        
    getActionBar().setDisplayHomeAsUpEnabled(true);
}
  • Override onOptionsItemSelected() method for show/hide teh sideNavigationView:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
	switch (item.getItemId()) {
	case android.R.id.home:
		sideNavigationView.toggleMenu();
		break;
	default:
		return super.onOptionsItemSelected(item);
	}
	return true;
}
  • Implementation of ISideNavigationCallback:
ISideNavigationCallback sideNavigationCallback = new ISideNavigationCallback() {
    	
	@Override
	public void onSideNavigationItemClick(int itemId) {
		// Validation clicking on side navigation item
	}
};

Contribution

Please fork dev repository and contribute back using pull requests.

Contributors are recommended to follow the Android Code Style Guidelines.

Any contributions, large or small, major features, bug fixes, additional language translations, unit/integration tests are welcomed and appreciated but will be thoroughly reviewed and discussed.

Developed By

License

Copyright (C) 2012 Evgeny Shishkin

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

More Repositories

1

Android-AppMsg

In-layout notifications. Based on Toast notifications and article by Cyril Mottier (http://android.cyrilmottier.com/?p=773).
Java
1,370
star
2

Android-ProgressFragment

Implementation of the fragment with the ability to display indeterminate progress indicator when you are waiting for the initial data.
Java
808
star
3

Android-RobotoTextView

Implementation of a TextView and all its direct/indirect subclasses with native support for the Roboto fonts, includes the brand new Roboto Slab fonts.
Java
778
star
4

Android-Icon-Fonts

Material and Holo iconic fonts.
HTML
222
star
5

Print

A lightweight Android library for use iconic fonts.
Java
205
star
6

Android-CollapsibleSearchMenu

Implementation of the SearchView is compatible with Android below 3.0. This library allows developers to easily integrate search menuItem in an Android application.
Java
118
star
7

SpySMS

Interceptor sms for android
Java
80
star
8

MockGPS

The application to emulate the location
Java
16
star
9

Android-AppMsg-Gradle-Sample

The sample project that uses Android-AppMsg via Gradle.
Shell
12
star
10

RecipeBook

Recipe Book for Android
Java
12
star
11

Android-JSONCompare

Comparison of JSON parsers performance on Android
Java
12
star
12

Metro

Modern subway maps of Moscow and Saint Petersburg.
Java
11
star
13

android-without-fragments

Demo for presentation "Life without Fragments" #MBLTdev16
Kotlin
9
star
14

CookApp

Android application of cooking
Java
8
star
15

Android-ProgressFragment-Gradle-Sample

The sample project that uses Android-ProgressFragment via Gradle.
Java
7
star
16

Steganography

Steganography is the art and science of writing hidden messages in such a way that no one, apart from the sender and intended recipient, suspects the existence of the message, a form of security through obscurity.
Java
6
star
17

DoubleBackExample

Example: double back to exit
Java
4
star
18

GeocoderExample

Example of a geocoder to Android
Java
3
star
19

johnkil

1
star
20

VK-Music-Downloader

The application to download music from the social network Vkontakte.
1
star