Navigationsschublade – Deaktivieren Sie Klick auf Artikel hinter der Schublade

Gibt es eine Möglichkeit, um sicherzustellen, dass die Navigationsschublade bleibt oben auf den Inhalt in das Fragment?

Ich habe eine kleine Testanwendung mit Dummy-Daten erstellt. 10 Fragmente mit einer entsprechenden nummerierten Schaltfläche und Textansicht. Die Frage ist mit der Tatsache, dass die Fragment-Elemente eine höhere Priorität haben als die Navigationsschublade.

  • Android Studio Espresso Testing Error: Leere Test Suite
  • Force HttpURLConnection zur Nutzung von Mobilfunk und Fallback zu WiFi
  • Android.os.NetworkOnMainThreadException für Webservice (ksoap)
  • Wie bekomme ich eine ausführliche Anmeldung in der Logcat für ein bestimmtes Modul
  • Wie benutzt man setMultiChoiceItems () mit einem benutzerdefinierten AlertDialog, der einen Effizienz-Arrayadapter verwendet?
  • Kann kein Projekt ins Android-Studio importieren
  • Bildbeschreibung hier eingeben

    Wie in dem Screenshot zu sehen, sobald ich versuche, das "0-Fragment" zu öffnen, entscheidet man sich stattdessen, den Klick auf den Button hinter dem Navigationsschub zu registrieren. Das Drücken eines anderen Inhaltselements funktioniert gut, aber das ist so lange, wie es keine anderen interaktablen Gegenstände darunter gibt. Was kann ich tun, um die Navigationsschublade richtig auf den Inhalt zu haben?

  • Wie optimiere ich Netzwerk-Queue-Take in Android Volley? (Volley Google IO 2013)
  • String.Format (.NET) Äquivalent in Java?
  • Öffnen einer URL mit dem nativen Playbook-Browser von einer Android-basierten Anwendung
  • Android Studio - Robolectric: android.content.res.Resources $ NotFoundException: kein solches Label com.my.app:string/app_name
  • Wie man einen System Dialog programmgesteuert schließt / abbricht / abläuft (Android)
  • GCMRegistrar getRegistrationId return leere ID
  • 5 Solutions collect form web for “Navigationsschublade – Deaktivieren Sie Klick auf Artikel hinter der Schublade”

    Set android:clickable="true" Tag auf Schiebefenster Layout.

    Das Problem scheint nicht, weil der Klick-Fokus,

    Besuchen Sie https://developer.android.com/training/implementing-navigation/nav-drawer.html#DrawerLayout

    Die Hauptinhaltsansicht (die FrameLayout oben) muss das erste Kind im DrawerLayout sein, da die XML-Reihenfolge z-ordering impliziert und die Schublade muss oben auf dem Inhalt liegen.

    In meiner Fragmentschublade setze ich TouchListener, um True zurückzugeben. Es hat für mich gearbeitet

      mFragmentContainerView.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { return true; } }); 

    Ich habe es anders gelöst

    Hier ist mein Code für die Einrichtung der Schublade:

     /** * Setup Navigation Drawer */ private void setDrawer() { NavigationDrawerFragment mNavigationDrawerFragment = (NavigationDrawerFragment) getFragmentManager().findFragmentById(R.id.fragment_drawer); mNavigationDrawerFragment.setup(R.id.fragment_drawer, (DrawerLayout) findViewById(R.id.drawer), mToolbar); } 

    Die setup Methode ist in meinem NavigationDrawerFragment , hier ist mein Code dafür:

     /** * Users of this fragment must call this method to set up the navigation drawer interactions. * * @param fragmentId The android:id of this fragment in its activity's layout. * @param drawerLayout The DrawerLayout containing this fragment's UI. * @param toolbar The Toolbar of the activity. */ public void setup(int fragmentId, DrawerLayout drawerLayout, Toolbar toolbar) { View mFragmentContainerView = (View) getActivity().findViewById(fragmentId).getParent(); DrawerLayout mDrawerLayout = drawerLayout; //noinspection deprecation mDrawerLayout.setStatusBarBackgroundColor(getResources().getColor(R.color.colorPrimaryDark)); ActionBarDrawerToggle mActionBarDrawerToggle = new ActionBarDrawerToggle(getActivity(), mDrawerLayout, toolbar, "Drawer opened", "Drawer closed") { @Override public void onDrawerClosed(View drawerView) { super.onDrawerClosed(drawerView); if (!isAdded()) return; // Solution: // Disable click event on views below Navigation Drawer mFragmentContainerView.setClickable(false); getActivity().invalidateOptionsMenu(); } @Override public void onDrawerOpened(View drawerView) { super.onDrawerOpened(drawerView); if (!isAdded()) return; // Solution: // Enable click event on views below Navigation Drawer mFragmentContainerView.setClickable(true); getActivity().invalidateOptionsMenu(); } }; // Defer code dependent on restoration of previous instance state. mDrawerLayout.post(new Runnable() { @Override public void run() { mActionBarDrawerToggle.syncState(); } }); //noinspection deprecation mDrawerLayout.setDrawerListener(mActionBarDrawerToggle); } 

    Das ist es

    Nun, ich habe eine Lösung für dieses Problem gefunden. Wenn die Schublade geöffnet wird, kannst du die Navigationsleiste nach vorne bringen, indem du die bringToFront () – Methode auf das gewünschte Layout aufrufst. Dadurch wird sichergestellt, dass die Navigationsschublade bis zu einem beliebigen Inhalt bleibt, bis ein neues Element ausgewählt wurde.

    Ich:

     @Override public void onDrawerOpened(View drawerView) { activity.getActionBar().setTitle("Select content"); activity.invalidateOptionsMenu(); drawerLayout.bringToFront(); } 
    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.