Android Facebook-Stil Folie

283

Die neue Facebook-Anwendung und ihre Navigation ist so cool. Ich habe nur versucht zu sehen, wie es in meiner Anwendung emuliert werden kann.

Hat jemand eine Ahnung, wie es erreicht werden kann?

Geben Sie hier die Bildbeschreibung ein

Wenn Sie auf die Schaltfläche oben links klicken, wird die Seitenfolie und der folgende Bildschirm angezeigt:

Geben Sie hier die Bildbeschreibung ein

YouTube-Video

Harsha MV
quelle
2
Ja, ein Video wird auch hilfreich sein, um den genauen Effekt kennenzulernen.
Bool.dev
@ bool.dev hier ist das Video: youtube.com/watch?v=ANLMaL7zn20
Harsha MV
@ HarshaMV: - Versuchen Sie, diesen Thread zu suchen. Ich denke, kann Ihnen etwas helfen. stackoverflow.com/questions/8453320/...
Shashank_Itmaster
3
Sehr guter Artikel über die Slide-Out-Navigation in Android - androiduipatterns.com/2012/06/… . Muss lesen.
AlexKorovyansky
Ich habe mein eigenes Schiebemenü implementiert, siehe hier stackoverflow.com/a/15880375/1939564
Muhammad Babar

Antworten:

176

Ich habe selbst damit gespielt, und der beste Weg, den ich finden konnte, war, ein FrameLayout zu verwenden und eine benutzerdefinierte HorizontalScrollView (HSV) über das Menü zu legen. Innerhalb des HSV befinden sich Ihre Anwendungsansichten, es gibt jedoch eine transparente Ansicht als erstes untergeordnetes Element. Das heißt, wenn der HSV einen Bildlaufversatz von Null hat, wird das Menü durch angezeigt (und ist überraschenderweise immer noch anklickbar).

Wenn die App gestartet wird, scrollen wir den HSV zum Versatz der ersten sichtbaren Anwendungsansicht. Wenn wir das Menü anzeigen möchten, scrollen wir zurück, um das Menü durch die transparente Ansicht anzuzeigen.

Der Code ist hier und die beiden unteren Schaltflächen (HorzScrollWithListMenu und HorzScrollWithImageMenu) in der Startaktivität zeigen die besten Menüs, die ich mir vorstellen konnte:

Android-Schiebemenü-Demo

Screenshot vom Emulator (Mid-Scroll):

Screenshot vom Emulator (Mid-Scroll)

Screenshot vom Gerät (Vollbild). Beachten Sie, dass mein Symbol nicht so breit ist wie das Facebook-Menüsymbol, sodass die Menüansicht und die App-Ansicht nicht ausgerichtet sind.

Screenshot vom Gerät (Vollbild)

Paul Grime
quelle
1
@AmokraneChentir Sie können verschiedene Aktivitäten verwenden, indem Sie getDrawingCache()Ihre Aktivitäten außerhalb des Menüs aufrufen und eine ImageView aus der Bitmap erstellen. Rufen Sie dann startActivity(intent)& overridePendingTransition(0, 0)bei der onClickMethode der ClickListenerForScrollingKlasse auf, um die neue Aktivität sofort anzuzeigen und den gewünschten Effekt zu erzielen.
Siklab.ph
1
Ich frage mich, ob die benutzerdefinierte HorizontalScrollView mit ListView verwendet werden kann, da im offiziellen Dokument von HorizontalScrollView erwähnt wurde, dass die ListView gezwungen wird, ihre gesamten Elemente anzuzeigen.
Shiami
1
Diese Gabel schaltet die Aktivitäten ohne Fragmente!
Erik B
1
Vielen Dank für Ihre Hilfe, ich konnte die HorzScrollWithListMenu.java verwenden.
KarenAnne
2
Vielen Dank @PaulGrime ... dies ist ein großartiges einfaches Beispiel und das Erstaunlichste in dieser Demo ist einfach, leicht zu verstehen und leicht anzupassen, und es gibt kein Bibliotheksprojekt, das verwendet werden kann.
Naveen Kumar
37

Ich habe in diesem Bibliotheksprojekt eine Facebook-ähnliche Slideout-Navigation implementiert .

Sie können es einfach in Ihre Anwendung, Ihre Benutzeroberfläche und Navigation integrieren. Sie müssen nur eine Aktivität und ein Fragment implementieren, die Bibliothek darüber informieren - und die Bibliothek bietet alle gewünschten Animationen und Navigationen.

Im Repo finden Sie ein Demo-Projekt mit Informationen zur Verwendung der Bibliothek zur Implementierung einer Facebook-ähnlichen Navigation. Hier ist ein kurzes Video mit Aufzeichnung des Demo-Projekts .

Auch diese Bibliothek sollte mit diesem ActionBar-Muster kompatibel sein, da sie auf Aktivitäten-Transaktionen und TranslateAnimations basiert (nicht auf Fragmenttransaktionen und benutzerdefinierten Ansichten).

Derzeit besteht das größte Problem darin, dass es für Anwendungen geeignet ist, die sowohl den Hoch- als auch den Querformatmodus unterstützen. Wenn Sie Feedback haben, geben Sie es bitte über Github.

Alles Gute,
Alex

AlexKorovyansky
quelle
4
Hallo, ich habe gerade herausgefunden, dass Ihr Ansatz jedes Mal, wenn Sie die Seitenleiste öffnen, eine große Screenshot-Bitmap erstellen wird. Dies erhöht die Größe des Heapspeichers und kann zu Speicherfehlern führen.
Shiami
3
Danke lieber Korovyansk, es ist sehr schön. Das absolute Layout ist jedoch in neuen Betriebssystemen veraltet. Können Sie es erneut codieren?
Hesam
Vielen Dank an alle, die Feedback in Github oder hier geben. Ich kenne einige Fehler und habe Ideen, wie ich die App verbessern kann. Ich schaffe es, wenn ich Freizeit habe.
AlexKorovyansky
Hallo koroyansk. Ich benutze deine Bibliothek, es funktioniert gut. Aber ich habe ein kleines Problem. Wenn die Liste der Schieberegler geöffnet ist, starte ich die Aktivität beim Klicken auf das Listenansichtselement. Die Aktivität wird korrekt gestartet, aber die Einschubanimation funktioniert nicht. Code((MenuActivity) getActivity()).getSlideoutHelper().close(); startActivity(new Intent(getActivity(), MyActivity.class) .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP).putExtra("category", position));
Sunny
In Ihrem Fall wird die neue Aktivität sofort geöffnet, ohne auf das Ende der Animation zu warten. Sie können versuchen, die Bibliothek zu erweitern und einen Rückruf für das Ende der Animation hinzuzufügen. Möglicherweise werde ich diese Funktion zur nächsten Version der Bibliothek hinzufügen.
AlexKorovyansky
24

Hier ist eine andere Bibliothek und scheint meiner Meinung nach die beste zu sein. Ich habe es nicht geschrieben ..

AKTUALISIEREN:

Dieser Code scheint für mich am besten zu funktionieren und bewegt die gesamte Aktionsleiste ähnlich wie die G + App.

Wie hat Google das geschafft? Schieben Sie die ActionBar in der Android-Anwendung

Patrick
quelle
7
Ich habe diese Bibliothek geschrieben, ich bin froh, dass es dir gefällt. Es ist vorerst wirklich grundlegend, aber ich werde es in den kommenden Wochen verbessern. Es ist mehr als willkommen, wenn auch andere Personen Änderungen daran vornehmen.
David Scott
Diese Bibliothek ist absolut wunderbar. Es ist so einfach zu bedienen und funktioniert perfekt. Danke dir. Ich möchte nur hinzufügen, dass das Beispiel nur mit ICS (und Honeycomb, glaube ich) funktioniert. Aber die Bibliothek funktioniert bis auf 2.1 zurück. Ich verwende es ohne Probleme.
Steven Elliott
Nicht schlecht, es ist ziemlich einfach, funktioniert aber gut und das Setup ist sehr schnell. Es ist jedoch von außerhalb der Bibliothek nicht sehr konfigurierbar: Alle Elemente haben das gleiche einfache Layout, und unterwegs gibt es keine Möglichkeit für eine dynamische Auflistung. Beide Dinge wären leicht anzupassen, aber ich brauche wirklich eine Gruppierung innerhalb der Liste und das wird nicht so einfach sein.
Htafoya
22

Ich denke, die Facebook-App ist nicht in nativem Code geschrieben (mit nativem Code meine ich die Verwendung von Layouts in Android), aber sie haben Webview dafür verwendet und einige Javascript- UI- Bibliotheken wie Sencha verwendet . Dies kann leicht mit dem Sencha-Framework erreicht werden.

Geben Sie hier die Bildbeschreibung ein

Sanjay Kumar
quelle
16
+1 Die Benutzeroberfläche kann ohne App Update geändert werden, es handelt sich also definitiv um eine Web-App, und die Android-App ist im Grunde ein Webbrowser.
Rudy
7
Ich bin mir nicht sicher, ob dies unbedingt der Fall ist. Das Grundgerüst für die Benutzeroberfläche kann nativ sein (z. B. die eigentliche Menüansicht und andere native Ansichten), und der Inhalt für diese Ansichten kann dynamisch geladen werden. Wenn sich das Grundgerüst der App ändert, ist wahrscheinlich ein Update erforderlich.
Paul Grime
2
Ich denke nicht, dass die Facebook-App eine Web-App ist. Zu fließend, schnell. Ich kenne Web- / Hybrid-Apps, die "wie native" gut aussehen, aber im Vergleich zu nativen gibt es immer noch eine gewisse Verzögerung. Nicht nur das Skelett - die Listen, die Karte usw. sehen aus und fühlen sich einheimisch an. Zumindest mit dem aktuellen Stand der Technik.
Ixx
Ok, jemand hat mir gesagt, dass diese App ungefähr 2 Monate lang nicht so war - Sie beziehen sich also auf eine alte Version, die ich nicht kenne. Auf jeden Fall kann es informativ sein zu kommentieren, dass die aktuelle App definitiv nativ ist.
Ixx
20

Hier ist noch eine (sehr schöne) Open Source Bibliothek!

Das Gute an diesem ist, dass es leicht in ActionBarSherlock integriert werden kann.

Hier ist die Link Github- Projekt

Hier ist der Google Play- Download-Link

Dwbrito
quelle
2
Ich denke, das ist das Beste
Harsha MV
17

Ich habe gerade eine ähnliche Ansicht für mein eigenes Projekt implementiert. Sie können es hier überprüfen

Hier ist ein Bildschirm der Beispielanwendung basierend auf der Bibliothek, die ich geschrieben habe: ActionsContentView-Beispiel

Es ist einfach, diese benutzerdefinierte Ansicht als Element des XML-Layouts zu verwenden. Hier ist ein Beispiel:

    <shared.ui.actionscontentview.ActionsContentView
      android:id="@+id/content"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      app:actions_layout="@layout/actions"
      app:content_layout="@layout/content" />

Wenn Sie Fragen zur Verwendung der ActionsContentView-Bibliothek haben, kann ich einen kleinen Artikel im Projekt-Wiki schreiben.

Einige Vorteile dieser Bibliothek:

  • Möglichkeit, die Ansicht durch Berühren zu verschieben
  • Es ist einfach, die Größe der Aktionsleiste in XML anzupassen
  • Unterstützung aller Android SDK-Versionen ab 2.0

Es gibt eine Einschränkung:

  • Alle horizontalen Bildlaufansichten funktionieren nicht an den Grenzen dieser Ansicht

Viele Grüße, Steven

unhöflich
quelle
Wie stelle ich die erste Benutzeroberfläche als Upload-Bild ein? Ich teste es erste Benutzeroberfläche ist WebView auf dem Bildschirm. Ich hoffe, die Listenansicht wird angezeigt, wenn die App gestartet wird. Durch Ihre Bibliothek ist 2.0, aber Ihre Demo ist 4.0, ich hoffe, Sie können auch 2.0 verwenden. Das ist cool
Pengwang
@pengwang: Ich habe gerade Code gepusht, um diese Funktion zu unterstützen. Sie können dies während Activity.onResume () tun, indem Sie viewActionsContentView.showActions () aufrufen.
unhöflich
Ist es möglich, Berührungsereignisse für versteckte Teile zu deaktivieren? Wenn beispielsweise der rechte Teil aktiv ist, sind alle Ansichten auf der rechten Seite deaktiviert.
Valeriy
Es besteht die Möglichkeit, das Inhaltslayout zu blockieren, während Aktion 1 angezeigt wird. Ich habe Ihnen ein Beispielprojekt per E-Mail geschickt.
unhöflich
16

Mit der Version 13 des Android-Support-Pakets (Mai 2013) gibt es DrawerLayout zum Erstellen einer Navigationsschublade, die vom Rand eines Fensters eingezogen werden kann. Und die Navigationsschublade ist jetzt ein Entwurfsmuster.

v4-Unterstützungsbibliothek

Designmuster der Navigationsschublade

Wubao Li
quelle
2
Ja, die unterstützte Mindest-API-Stufe ist 4.
Wubao Li
1
Mit der Kompatibilitätsbibliothek können Sie sie auf älteren Geräten verwenden. Ich habe gerade eine für Lebkuchen und später entwickelt.
Tony Maro
2
Dies muss weiter oben sein. Zu viele fremde Bibliotheken von Drittanbietern in den anderen Antworten.
Jason Axelson
15

Hat eine Zusammenfassung einer bestehenden Implementierung gemacht und in ein Bibliotheksprojekt plus Beispiel-App umgewandelt. Außerdem wurde die XML-Analyse sowie die automatische Erkennung einer möglicherweise vorhandenen Aktionsleiste hinzugefügt, sodass sie sowohl mit der nativen als auch mit einer unterstützenden Aktionsleiste wie ActionBarSherlock funktioniert.

Dieser schiebt auch die Aktionsleiste weg!

Das Ganze ist ein Bibliotheksprojekt zusammen mit einer Beispiel-App und wird unter Ein verschiebbares Menü für Android wie Google- und Facebook-Apps beschrieben . Vielen Dank an scirocco für die erste Idee und den Code!

SlideMenu auf Lebkuchen SlideMenu auf ICS mit ActionBar

bk138
quelle
10

Dies ist einfach und elegant: https://github.com/akotoe/android-slide-out-menu.git

Schnappschuss:

Geben Sie hier die Bildbeschreibung ein

Edward
quelle
können Sie mir helfen?? Frage im Zusammenhang mit Slider .. Hier ist der Link stackoverflow.com/questions/14500927/…
moDev
Lässt es dich durch Berühren gleiten? (Mean Swipe)
Alicanbatur
@ Edward Ich habe mit Ihrem Beispiel gearbeitet, ich finde es großartig und einfach zu bedienen, bin aber beim Drehen des Bildschirms auf ein Problem gestoßen (ich verwende android: configChanges = "Orientierung" im Manifest mit Android 3.1, weil ich es nicht tue möchte, dass die Aktivität neu gestartet wird) Der Bildschirm dreht sich gut, aber das Framelayout behält seine Größe und es sieht nicht gut aus. Haben Sie einen Weg, dies zu umgehen? Ich habe alles versucht, kann es aber nicht beheben. danke
zvzej
@ Edward hier ist meine Frage anhand Ihres Beispiels, bitte helfen Sie mir oder geben Sie mir einen Rat, danke. stackoverflow.com/questions/16778911/…
zvzej
10

Ich denke, dass die Bibliothek nicht erwähnt:

jfeinstein10 / SlidingMenu

github url:https://github.com/jfeinstein10/SlidingMenu

  • funktioniert gut mit der Aktionsleiste ActionBarSherlock, die zur Abwärtskompatibilität beiträgt !
  • Unterstützen Sie die rechte Folie und schieben Sie nicht nur über die Taste!
Madlymad
quelle
8

Ich kann die Antwort von @Paul Grime noch nicht kommentieren, trotzdem habe ich auf seinem Github-Projekt die Lösung für das Flimmerproblem eingereicht ...

Ich werde das Update hier posten, vielleicht braucht es jemand. Sie müssen nur zwei Codezeilen hinzufügen. Der erste unter dem Aufruf von anim.setAnimationListener:

anim.setFillAfter(true);

Und der zweite nach dem Aufruf von app.layout ():

app.clearAnimation();

Hoffe das hilft :)

Fatal1ty2787
quelle
6

Ich habe dies mit AbsoluteLayout und einem einfachen Schieberegler implementiert, der die Ansicht auf einen negativen Versatz verschiebt, um sie auszublenden.

Wenn jemand interessiert ist, kann ich den Code / das Layout bereinigen und posten. Ich weiß, dass AbsoluteLayout veraltet ist, aber es war eine sehr einfache Implementierung. Linke Ansicht / Rechte Ansicht, und wenn Sie "aufschieben", verschieben Sie einfach die linke Ansicht von einem -X-Versatz zur Gerätebreite - was auch immer Sie in der rechten Ansicht anzeigen möchten

Reich
quelle
Ich werde mich freuen, wenn Sie es ohne AbsoluteLayout schaffen! Vielen Dank!
Igor
4

Hallo, dies ist die beste Beispiel-Demo-App, die ein Facebook-ähnliches Folienmenü bietet. Überprüfen Sie den Code hier

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein

Mukesh Y.
quelle
3

Als Teil meiner Android Common Library (ACL) habe ich eine eigene SideBar implementiert. Hauptvorteile:

  1. Die Seitenleiste kann auf eine beliebige Position eingestellt werden: links, oben, unten, rechts
  2. Sowohl die Hauptansicht als auch die Schiebeansicht können angeklickt werden
  3. Die Seitenleiste kann teilweise angezeigt werden
  4. Stilbare Attribute für SideBar erleichtern das Ändern des Stils
  5. Artefakt im Maven Repo
  6. Teil einer großen Bibliothek

Quellcode: https://github.com/serso/android-common/tree/master/views/src/main/java/org/solovyev/android/view/sidebar

Verwendung: https://github.com/serso/android-common/blob/master/samples/res/layout/acl_view_layout.xml

se.solovyev
quelle
3

Vor kurzem habe ich an meiner Sliding-Menü-Implementierungsversion gearbeitet. Es verwendet die beliebte J.Feinstein Android-Bibliothek SlidingMenu.

Bitte überprüfen Sie den Quellcode bei GitHub:

https://github.com/baruckis/Android-SlidingMenuImplementation

Laden Sie die App direkt auf das Gerät herunter, um Folgendes zu versuchen:

https://play.google.com/store/apps/details?id=com.baruckis.SlidingMenuImplementation

Der Code sollte aufgrund von Kommentaren selbsterklärend sein. Ich hoffe es wird hilfreich sein! ;)

Andrius Baruckis
quelle
3

Ich habe einen einfachsten Weg dafür gefunden und es funktioniert. Verwenden Sie die einfache Navigationsleiste und rufen Sie drawer.setdrawerListner () auf. Verwenden Sie die Methode mainView.setX () in der unten stehenden drawerSlide-Methode oder kopieren Sie meinen Code.

XML-Datei

 <android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#000000" >

<RelativeLayout
    android:id="@+id/content_frame"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#ffffff">

  <ImageView
      android:layout_width="40dp"
      android:layout_height="40dp"
      android:id="@+id/menu"
      android:layout_alignParentTop="true"
      android:layout_alignParentLeft="true"
      android:layout_marginTop="10dp"
      android:layout_marginLeft="10dp"
      android:src="@drawable/black_line"
      />
</RelativeLayout>


<RelativeLayout
    android:id="@+id/left_drawer"
    android:layout_width="200dp"
    android:background="#181D21"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    >
    </RelativeLayout>
 </android.support.v4.widget.DrawerLayout>

Java-Datei

   public class MainActivity extends AppCompatActivity {
DrawerLayout drawerLayout;
RelativeLayout mainView;
ImageView menu;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    menu=(ImageView)findViewById(R.id.menu);
    drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
    mainView=(RelativeLayout)findViewById(R.id.content_frame);

    menu.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            drawerLayout.openDrawer(Gravity.LEFT);
        }
    });

    drawerLayout.setDrawerListener(new DrawerLayout.DrawerListener() {
        @Override
        public void onDrawerSlide(View drawerView, float slideOffset) {
            mainView.setX(slideOffset * 300);
        }

        @Override
        public void onDrawerOpened(View drawerView) {

        }

        @Override
        public void onDrawerClosed(View drawerView) {

        }

        @Override
        public void onDrawerStateChanged(int newState) {

        }
    });
 }
}

Geben Sie hier die Bildbeschreibung ein

Vielen Dank

Dalvinder Singh
quelle
2

Ich werde hier einige mutige Vermutungen anstellen ...

Ich gehe davon aus, dass sie ein Layout haben, das das Menü darstellt, das nicht sichtbar ist. Wenn Sie auf die Menüschaltfläche tippen, animieren sie das Layout / die Ansicht oben, um sie aus dem Weg zu räumen, und aktivieren einfach die Sichtbarkeit des Menülayouts. Ich habe nicht darüber nachgedacht, was zu Problemen mit dem Z-Index in den Ansichten führt oder wie sie dies steuern.

jlindenbaum
quelle
Wenn Sie die App verwendet haben, können Sie tatsächlich sehen, dass das Layout nach rechts verschoben wird und dem Menübereich Platz macht. Ich werde versuchen, ein Video zu machen und es hochzuladen.
Harsha MV
1
Ich benutze die iPhone-Version. Wenn die Android-Version dieselbe ist, bezweifle ich, dass sie sich stark von der von mir beschriebenen unterscheidet. Ich habe nicht viele Animationen auf Android geschrieben, daher konnte ich Ihnen nicht sagen, wie der Animationscode aussieht, aber in groben Worten gehe ich davon aus, dass es das ist, was ich beschrieben habe.
Jlindenbaum
danke, youtube.com/watch?v=ANLMaL7zn20 ist es der gleiche Effekt auf dem iPhone.
Harsha MV
2

Hier ist der Design- und Entwicklungsleitfaden in der offiziellen Android-Dokumentation, ohne dass eine inoffizielle externe Bibliothek hinzugefügt werden muss. Nur die Android-Support-Bibliothek reicht aus. Hier finden Sie die Links.

entwerfen und entwickeln .

jai_b
quelle
1

Die Facebook Android App wird möglicherweise mit Fragmenten erstellt . Das Menü besteht aus einem Fragment, die ausführliche Aktivität (Newsfeed / Events / Friends usw.) ist das andere Fragment. Grundsätzlich ein Tablet 'Master & Detail'-Layout auf einem Telefon.

Gunnar Karlsson
quelle
In diesem Fall müssen wir eine Aktionsleiste innerhalb des Fragments erstellen, damit wir keine Funktionen des Android-Frameworks verwenden können, um es zu erstellen, oder? Eigentlich kann ich mir bei Facebook nicht sicher sein, aber für viele Entwickler ist es zu schwierig, eine Aktionsleiste ohne Hilfe des Frameworks zu erstellen. Ich hoffe, diese Zeit ist bereits vorbei.
AlexKorovyansky
1

Da die Kompatibilitätsbibliothek mit 1.6 beginnt und diese Facebook-App auch auf Geräten mit Android 1.5 ausgeführt wird, ist dies mit Fragmenten nicht möglich.

So können Sie dies tun: Erstellen Sie eine "Basis" -Aktivität BaseMenuActivity, in der Sie die gesamte Logik für den onItemClickListener für Ihre Menüliste ablegen und die 2 Animationen definieren ("Öffnen" und "Schließen"). Am Ende / Anfang der Animationen zeigen / verbergen Sie das Layout der BaseMenuActivity (nennen wir es menu_layout). Das Layout für diese Aktivität ist einfach. Es handelt sich nur um eine Liste mit Elementen + einem transparenten Teil rechts von Ihrer Liste. Dieser Teil kann angeklickt werden und seine Breite entspricht der Breite Ihrer "Verschieben-Schaltfläche". Damit können Sie auf dieses Layout klicken, um die Animation zu starten, damit das content_layout nach links verschoben wird und den gesamten Bildschirm einnimmt. Für jede Option (dh Element der Menüliste) erstellen Sie eine "ContentActivity", die die BaseMenuActivity erweitert. Wenn Sie dann auf ein Element der Liste klicken, starten Sie Ihre ItemSelectedContentActivity mit dem sichtbaren Menü (das Sie schließen, sobald Ihre Aktivität beginnt). Die Layouts für jede ContentActivity sind FrameLayout und enthalten das und. Sie müssen nur das content_layout verschieben und das menu_layout sichtbar machen, wenn Sie möchten.

Das ist ein Weg, und ich hoffe, ich war klar genug.

p4u144
quelle
1

Ich habe in den letzten Tagen damit gespielt und eine Lösung gefunden, die am Ende recht einfach ist und vor Honeycomb funktioniert. Meine Lösung bestand darin, die Ansicht zu animieren, die ich ( FrameLayoutfür mich) verschieben möchte, und auf das Ende der Animation zu warten (an diesem Punkt, um die linke / rechte Position der Ansicht zu versetzen). Ich habe meine Lösung hier eingefügt: So animieren Sie die Übersetzung einer Ansicht

Adil Hussain
quelle
1

Nach einer mehrstündigen Suche fand ich, dass Paul Grimes Lösung wahrscheinlich die beste ist. Aber es hat zu viel Funktionalität. Daher kann es für Anfänger schwierig sein, zu lernen. Daher möchte ich meine Implementierung bereitstellen, die aus Pauls Idee stammt, aber einfacher ist und leicht zu lesen sein sollte.

Implementierung der Seitenmenüleiste unter Verwendung von Java-Code ohne XML

Chao
quelle
1

Ich habe den erstaunlichen SimonVT / Android-Menudrawer, der irgendwo in den obigen Antworten erwähnt wurde, nicht gesehen. Also hier ist ein Link

https://github.com/SimonVT/android-menudrawer

Es ist super einfach zu bedienen und Sie können es links, rechts, oben oder unten platzieren. Sehr gut dokumentiert mit Beispielcode und Apache 2.0 Lizenz.

lwegener
quelle
0

Im Juni 2012 hat Google dem Eclipse ADT-Plugin "Vorlagen" hinzugefügt , und es gibt eine Vorlage namens "Master / Detail-Flow", die genau das tut (basierend auf Fragmets).

rds
quelle
1
Der Master- / Detailfluss ist kein fragliches Seitenleistenmenü. Es sind nur zwei Fragmente, die zusammen (Tablet) oder separat (Telefon) angezeigt werden.
Tomash
Nun, im Juni 2013 wurde das Layout der Navigationsschublade hinzugefügt, was hier ähnlicher ist, aber die ActionBar wird nicht mit der Schublade verschoben, wie es der Schieberegler im Facebook-Stil hier benötigt.
Khulja Sim Sim