Warum kann ich DrawerLayout nicht mit dem Layout Gravity sperren

Ich verwende DrawerLayout und vor kurzem möchte ich die Schwerkraft von listView in drawerLayout ändern. Aber nachdem ich die Schwerkraft von listView auf android:layout_gravity="start|bottom" von android:layout_gravity="start" , drawerLayout kann nicht verriegelt werden

 mDrawer.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED); 

SetDrawerLockMode () arbeiten mit;

  • Android-Anwendung, die nicht von der Verknüpfung ausgeht
  • Google Play Store - Unerwarteter Fehler (-32600)
  • PhoneGap - nur Kontakte mit Telefonnummern anzeigen
  • Android andmlite NoClassDefFoundError auf Samsung S4 API 21
  • Wie erstellen oder finden Sie eine Datei "userdata.img" für ABI armeabi, um in den AVD-Ordner zu kopieren
  • Wie kann man VT-x in BIOS- und KVM-Modulen unter Linux aktivieren?
  •  <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/drawer_layout" android:layout_width="match_parent" android:layout_height="match_parent" > <RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent" > </RelativeLayout> <ListView android:id="@+id/drawer_list" android:layout_width="320dp" android:layout_height="match_parent" android:layout_gravity="start" android:background="#F3F3F4" android:choiceMode="singleChoice" > </ListView> 

    Aber es verriegelt sich nicht;

     <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/drawer_layout" android:layout_width="match_parent" android:layout_height="match_parent" > <RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent" > </RelativeLayout> <ListView android:id="@+id/drawer_list" android:layout_width="320dp" android:layout_height="match_parent" android:layout_gravity="start|bottom" android:background="#F3F3F4" android:choiceMode="singleChoice" > </ListView> 

    "

    Irgendwelche Hinweise darauf, warum kann ich den Sperrmodus nicht mit anderen Schwerkraft verwenden?

    Vielen Dank!

  • Verwenden von Datenbindungen in android error: package *. *. Databinding existiert nicht
  • Vorteile der Verwendung von Binder für IPC in Android
  • Android: Datei IO von SD-Karte mit dem NDK
  • WinDeath auf notifyDataSetChanged ()
  • Finde versionnumber und versioncode von apk, die von android studio erstellt wurden
  • Wie man Multiplayer-Spiel macht
  • One Solution collect form web for “Warum kann ich DrawerLayout nicht mit dem Layout Gravity sperren”

    Basierend auf der Dokumentation sind die einzigen verfügbaren Schwerkraft Gravity.LEFT , Gravity.RIGHT oder Gravity.LEFT , Gravity.RIGHT .

    (Hervorhebung von mir):

    Die Schubladenpositionierung und das Layout werden mit dem android: layout_gravity Attribut auf untergeordneten Ansichten entsprechend der Seite der Ansicht, die die Schublade aus: links oder rechts entstehen soll, gesteuert. (Oder beginnen / enden auf Plattformversionen, die Layout-Richtung unterstützen.)

    Blick auf den Quellcode

     public void setDrawerLockMode(int lockMode, int edgeGravity) { final int absGrav = GravityCompat.getAbsoluteGravity(edgeGravity, ViewCompat.getLayoutDirection(this)); if (absGrav == Gravity.LEFT) { mLockModeLeft = lockMode; } else if (absGrav == Gravity.RIGHT) { mLockModeRight = lockMode; } if (lockMode != LOCK_MODE_UNLOCKED) { // Cancel interaction in progress final ViewDragHelper helper = absGrav == Gravity.LEFT ? mLeftDragger : mRightDragger; helper.cancel(); } switch (lockMode) { case LOCK_MODE_LOCKED_OPEN: final View toOpen = findDrawerWithGravity(absGrav); if (toOpen != null) { openDrawer(toOpen); } break; case LOCK_MODE_LOCKED_CLOSED: final View toClose = findDrawerWithGravity(absGrav); if (toClose != null) { closeDrawer(toClose); } break; // default: do nothing } } 

    Die Methode selbst prüft nur, ob die Schwerkraft LEFT oder RIGHT (aber verwendet eine GravityCompat Methode, so dass START und END entsprechend übersetzt werden sollten).

    Dies würde bedeuten, dass Sie mit einer Schwerkraft von "start|bottom" eine ungültige Schwerkraft einführen, die setDrawerLockMode() dazu veranlasst, nichts zu tun.

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.