Fly-out-menu wie Google+ bzw. Youtube

Ich baue grad an einer App und bin auf der Suche nach einem Menü, wie es die Google+ oder Youtube App haben.
Bei meiner Suche bin ich bisher nur auf third-party Bibliotheken gestoßen, wie bspw. https://github.com/jfeinstein10/SlidingMenu. Es hieß dort immer, dass es da von Android nichts gibt, ist das noch aktuell?
Falls man da tatsächlich auf third-party libs zurückgreifen muss, würde ich mich über nen Tipp freuen falls jemand schon mal mit einer Bibliothek gute Erfahrungen gemacht hat.

Eike nimm das, dass Teil ist gut, aktuell gibt es da nichts von Google. Aber vorallem müsstest du das auch nehmen da du ja bestimmt nicht nur für das aktuellste bauen willst.
Ich habs in meiner App drin und bin recht zufrieden damit, auf Arbeit setzen wir das auch ein.

[…]aktuell gibt es da nichts von Google.

Falsch. Das Pattern nennt sich Navigation Drawer und von Google gibt’s dafür in den Support Libraries das DrawerLayout. Hier gibt’s auch ein Tutorial von Google dazu.

Aber vorallem müsstest du das auch nehmen da du ja bestimmt nicht nur für das aktuellste bauen willst.

Das ist theoretisch richtig. Aber ich denke es baut heut niemand mehr Apps für APIs älter als 4. Praktisch fängt man bei 8 oder 9 an.

@EagleEye :
Das API Level wäre kein Problem gewesen, da die App, zumindest nach jetzigen Stand, eh nur für mich wäre.

Danke euch beiden für die Tipps. Ich werde mir den Navigation Drawer mal anschauen, der schaut interessant aus.

*** Edit ***

Habe jetzt beide Möglichkeiten ausprobiert und mich schließlich für das Slidingmenu von jfeinstein10 entschieden.
Das sieht mir auf den ersten Blick etwas einfacher/sauberer aus.

Leichter ist es IMHO sicher nicht. Mich würde aber interessieren was du sauberer an der SlidingMenu-Lösung findest.

Wenn man das Tutorial durchmacht ist es eigentlich echt nicht kompliziert. Wenn man noch die Bildresourcen herunterlädt und entsprechend verwendet, bekommt man das selbe Ergebnis wie bei YT und Freunde. Die Frage ist nur: funktioniert das auch mit der ActionBar aus dem v7-Support-Package (das ist das was ich jetzt noch versuchen möchte).

*** Edit ***

Ok, funktioniert auch wunderbar mit der Actionbar aus dem support-package v7 auf einem Emulator mit Android 2.2:

Geschlossen:

Geöffnet:

@Tomate_Salat sprichst du jetzt von der Google Lib oder dem SlidingMenu-Projekt?

Ich habe den Google Navigation Drawer mit der Sherlock ActionBar und dem SherlockNavigationDrawerim Einsatz. Damit bekommt man auch die smoothe Animation des Slider-Symbols hin. (So wie bei der Gmail-App z.B.)

Also alles aus dem Hause Google und dort habe ich auch diese Animationen. Hier mal meine Testactivity:


import android.content.res.Configuration;
import android.os.Bundle;
import android.support.v4.app.ActionBarDrawerToggle;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarActivity;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.ArrayAdapter;
import android.widget.ListView;

public class MainActivity extends ActionBarActivity {

	private ActionBarDrawerToggle toggle;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.drawer);
				
		String[] plainTitles = {"Hallo", "Welt", "Wie", "Gehts"};
		DrawerLayout drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
		ListView drawerList = (ListView) findViewById(R.id.left_drawer);
		
		drawerList.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, plainTitles));
	
		toggle = new ActionBarDrawerToggle(this, drawerLayout, R.drawable.ic_drawer, R.string.app_name, R.string.hello_world);
		drawerLayout.setDrawerListener(toggle);
		
		getSupportActionBar().setDisplayHomeAsUpEnabled(true);
		getSupportActionBar().setHomeButtonEnabled(true);
	}
	
	@Override
	protected void onPostCreate(Bundle savedInstanceState) {
		super.onPostCreate(savedInstanceState);
		toggle.syncState();
	}
	
	@Override
	public void onConfigurationChanged(Configuration newConfig) {
		super.onConfigurationChanged(newConfig);
		toggle.onConfigurationChanged(newConfig);
	}
	
	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
		if(toggle.onOptionsItemSelected(item)) {
			return true;
		}
		
		return super.onOptionsItemSelected(item);
	}	   
    
}

Unsauber war vielleicht nicht die beste Wortwahl. Ich meinte eher, dass man bei der Navigation Drawer Lösung ne Menge Listener selbst zusammenfriemeln muss (zumindest in dem Beispiel auf der Google Seite.
Wobei das bei @Tomate_Salat relativ easy aussieht, ich werd mir das nochmal anschauen.

*** Edit ***
@Tomate_Salat
Ich versuche grad dein Beispiel bei mir nachzubauen. Mir fehlt noch das android.support.v7 package. Kannst du mir da mal nen Tipp geben wo ich das herbekomme? Ich habe hier nen maven Projekt, die support-v4.jar habe ich meinem lokalen Repository hinzugefügt und als dependency eingebunden. Eine support-v7.jar kann ich allerdings nirgends finden.

Hier wird erklärt wie: http://developer.android.com/tools/support-library/setup.html

Kurz: das package ist eigentlich ein komplettes Library-Projekt welches du dir über den SDK-Manager laden kannst und danach als Projekt (oder in Android Studio als dependency) einbindest.