Ich habe eine Aktivität.Inner habe ich ein NavigationDrawer hinzugefügt.Deaktivieren Sie Swipe, um NavigationDrawer zu öffnen, aber aktivieren Sie die Änderung der Aktivität
Ich möchte den Swipe von links nach rechts deaktivieren, um meine NavigationDrawer zu öffnen. Ich konnte es nur öffnen, wenn ich auf den Knopf klicke.
Ich möchte jedoch auf die vorherige Seite zurückgehen, wenn ich einen Swipe von links nach rechts mache.
Ich kann den Swipe für das Menü deaktivieren, aber es deaktiviert auch den Swipe, um zur vorherigen Seite zurückzukehren.
Wie kann ich es tun?
Hier ist mein Code:
mDrawerLayout = (DrawerLayout)findViewById(R.id.drawerLayout);
mToogle = new ActionBarDrawerToggle(this,mDrawerLayout,R.string.open,R.string.close);
mDrawerLayout.addDrawerListener(mToogle);
mToogle.syncState();
//this is how I lock my menu
mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
NavigationView navigation = (NavigationView)findViewById(R.id.menu_navigation);
navigation.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(MenuItem item) {
switch (item.getItemId())
{
case R.id.mes_cours:
Intent cours = new Intent(ModifierBranche.this,MesCours.class);
startActivity(cours);
return true;
case R.id.mes_branches:
finish();
startActivity(getIntent());
return true;
}
return true;
}
});
@Override
public boolean onTouchEvent(MotionEvent event)
{
mGestureDetector.onTouchEvent(event);
return super.onTouchEvent(event);
}
//the sub-class
class MyGestureListener extends GestureDetector.SimpleOnGestureListener
{
@Override
public boolean onFling(MotionEvent event1, MotionEvent event2,
float velocityX, float velocityY) {
if(event2.getX() > event1.getX()){
Intent intent = new Intent(
ModifierBranche.this, MesBranches.class);
startActivity(intent);
}
return true;
}
}
@UPDATE - ERROR
FATAL EXCEPTION: main
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.dasilvadd.students/com.example.dasilvadd.students.ModifierBranche}: java.lang.ClassCastException: android.widget.FrameLayout$LayoutParams cannot be cast to android.support.v4.widget.DrawerLayout$LayoutParams
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2295)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2349)
at android.app.ActivityThread.access$700(ActivityThread.java:159)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1316)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:176)
at android.app.ActivityThread.main(ActivityThread.java:5419)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1046)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:862)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.ClassCastException: android.widget.FrameLayout$LayoutParams cannot be cast to android.support.v4.widget.DrawerLayout$LayoutParams
at android.support.v4.widget.DrawerLayout.isDrawerView(DrawerLayout.java:1421)
at android.support.v4.widget.DrawerLayout.setDrawerLockMode(DrawerLayout.java:677)
at com.example.dasilvadd.students.ModifierBranche.onCreate(ModifierBranche.java:64)
at android.app.Activity.performCreate(Activity.java:5372)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1104)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2257)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2349)
at android.app.ActivityThread.access$700(ActivityThread.java:159)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1316)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:176)
at android.app.ActivityThread.main(ActivityThread.java:5419)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1046)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:862)
at dalvik.system.NativeStart.main(Native Method)
meine XML-Datei:
<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/drawerLayout"
tools:context="com.example.dasilvadd.students.ModifierBranche">
<android.support.constraint.ConstraintLayout
android:layout_width="wrap_content"
android:layout_height="match_parent">
<EditText
android:id="@+id/ETBranche"
android:layout_width="381dp"
android:layout_height="40dp"
android:ems="10"
android:inputType="textPersonName"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/bModifier"
android:layout_width="376dp"
android:layout_height="wrap_content"
android:layout_marginBottom="3dp"
android:onClick="ModifierBranche"
android:text="Modifier"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintRight_toRightOf="parent" />
</android.support.constraint.ConstraintLayout>
<android.support.design.widget.NavigationView
android:layout_width="wrap_content"
android:layout_height="140dp"
android:layout_gravity="start"
android:id="@+id/menu_navigation"
app:menu="@menu/navigation_menu"></android.support.design.widget.NavigationView>
Es tötet meine App .. Sie meinten, ich sollte die Zeile ersetzen, die ich mit der, die Sie mir gaben kommentierte? –
können Sie Ihr Fehlerprotokoll teilen. –
Ich habe hinzugefügt, es ist in dieser Zeile: at com.example.dasilvadd.students.ModifierBranche.onCreate (ModifierBranche.java:64), die Linie ist, die Sie mir gegeben haben .. –