J'ai une activité.À l'intérieur j'ai ajouté un NavigationDrawer.Désactiver le balayage pour ouvrir NavigationDrawer mais permettre de changer d'activité
Je voudrais désactiver le balayage gauche-droite pour ouvrir mon NavigationDrawer. Je ne pouvais l'ouvrir que si je cliquais sur le bouton.
Cependant, je veux revenir à la page précédente si je fais un balayage de gauche à droite.
Je suis capable de désactiver le balayage pour le menu, mais cela désactive également le balayage pour revenir à la page précédente.
Comment puis-je le faire?
Voici mon 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 - ERREUR
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)
mon fichier xml:
<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>
Il tue mon application .. Vous vouliez dire que je devrais remplacer la ligne j'ai commenté avec celui que vous m'avez donné? –
pouvez-vous partager votre journal des erreurs. –
J'ai ajouté, C'est dans cette ligne: à com.example.dasilvadd.students.ModifierBranche.onCreate (ModifierBranche.java:64) qui est la ligne que vous m'avez donné .. –