2013-08-24 3 views
6

Ich verwende SlidingMenu-Bibliotheken (https://github.com/jfeinstein10/SlidingMenu), um die Navigationsleiste meiner App zu erhalten. Es fühlt sich an und sieht fantastisch aus, aber ich habe ein Problem: Ich möchte ein großes Bild mit einer Textansicht verwenden, um das Benutzerfoto und den Namen anzuzeigen (siehe Bild).Hinzufügen eines großen Bildes zu einem Navigationsschublade (SlidingMenu libs) - Wie?

Wie erreiche ich dieses Aussehen? Die XML-Menüdatei lässt mich kein ImageView oder TextView hinzufügen, nur Elemente und innerhalb derer gibt es sehr begrenzte Möglichkeiten der Anpassung.

Überprüfen Sie das Bild für einen besseren Blick von dem, was ich im Auge habe.

Vielen Dank im Voraus.

Nav Drawer image

Antwort

4

Zunächst all dies ist nicht die SlidingMenu Sie sich beziehen. Das Bild zeigt den offiziellen DrawerLayout.

Soweit Ihre eigentliche Frage lautet:

Das Menü besteht nur aus einem ListView, so müssen Sie nur noch Ihre ListView anpassen ein Bild für die erste Zeile angezeigt werden soll. Sie könnten entweder einen benutzerdefinierten Adapter dafür erstellen oder das Bild über
addHeaderView (View v, Object data, boolean isSelectable) setzen.

+0

Die SlidisingMenu Libs im Projekt umgesetzt werden, das ist das Mock-up, wo ich mit ihm zu bekommen . Also, wenn ich ein Bild dort hinzufügen möchte, muss ich es über Java tun? Ist es möglich, es auch mit dem XML zu tun? THanks – guilhermexot

+1

Ja, Sie müssen es programmgesteuert tun. – Ahmad

0

Verwenden Sie die von ListView bereitgestellte Methode addHeaderView().
Hinweis: Dies führt dazu, dass der ArrayAdapter das Bild als erstes Element in Ihrer Liste interpretiert. Um dies zu umgehen, verwenden Sie die Option in addHeaderView, um das Klicken zu deaktivieren, und verschieben Sie alle Elemente in Ihrem Array um 1 (im Wesentlichen wird ein Dummy-Wert am 0. Element erzeugt).

Wenn Ihre Navigationsleiste zuerst aufgerufen wird, müssen Sie möglicherweise einen Schnipsel wie die hinzufügen folgenden:

if (savedInstanceState == null) { 
    selectItem(1); 
}