2016-04-18 9 views
0

Nehmen wir an, ich habe eine Aktivität mit zwei nebeneinander liegenden Fragmenten X und Y und einem versteckten Navigationsschubladenfragment. Immer wenn ich auf eine Schaltfläche auf dem Fragment X klicke, gleitet das Navigationsschubladenfragment von rechts und findet oberhalb des Y-Fragments statt. Als ich es transparent gemacht habe, können Benutzer nun das X-Fragment zusammen mit dem Navigationsschubladenfragment horizontal nebeneinander sehen. Aber dieses Navigations-Schubladen-Fragment deaktiviert das X-Fragment, da es die Aktivität tatsächlich überlagert. Wie kann ich den Aktivitätsübergang am Leben erhalten, wenn die Navigationsleiste geöffnet ist?Wie kann ich verhindern, dass Navigationsschublade meine Aktivität deaktiviert?

+1

Warum möchten Sie gegen das System kämpfen? Wenn die Aktivität aktiv sein soll, verwenden Sie keine Navigationsleiste. – Henry

+0

Ich stimme Henry zu, aber das wurde hier schon einmal beantwortet: http://StackOverflow.com/questions/18743124/Make-Main-Content-area-active-in-Drawsterlayout –

+0

Henry, ich könnte den Zustand speichern müssen das Fragment Y und ersetze es jedes Mal mit dem Zustand. Deshalb habe ich an die Navigationsschublade gedacht. Mike, mein Problem ist ähnlich, lassen Sie mich einen Blick darauf werfen. Ich konnte die Frage zu Stackoverflow nicht finden. Danke fürs Vorschlagen. – Aveek

Antwort

0

Schreiben Sie eine benutzerdefinierte Klasse für Ihre Navigartion Schublade

public class CustomDrawer extends DrawerLayout { 

public CustomDrawer(Context context) { 
    super(context); 
} 

public CustomDrawer(Context context, AttributeSet attrs) { 
    super(context, attrs); 
} 

public CustomDrawer(Context context, AttributeSet attrs, int defStyle) { 
    super(context, attrs, defStyle); 
} 

@Override 
public boolean onInterceptTouchEvent(MotionEvent ev) { 
    View drawer = getChildAt(1); 

    if (getDrawerLockMode(drawer) == LOCK_MODE_LOCKED_OPEN && ev.getRawX() > drawer.getWidth()) { 
     return false; 
    } else { 
     return super.onInterceptTouchEvent(ev); 
    } 
} 
} 

ich die gleiche Frage hatte. Dieser Code ist von hier Make fragment clickable when navigation drawer is opened

+0

Danke! Das hat mein Problem gelöst :) :) – Aveek