0
我有一個activity.Inside我加了NavigationDrawer的。禁止刷卡打開NavigationDrawer但能夠改變活動
我想禁用滑動左右打開我的NavigationDrawer。我只能點擊按鈕才能打開它。
但是,如果我左右滑動,我想回到上一頁。
我可以禁用菜單的滑動,但也會禁用滑動返回上一頁。
我該怎麼辦?
這裏是我的代碼:
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 - 錯誤
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)
我的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>
它殺死我的應用程序。你的意思,我應該取代我評論你給了我一個行? –
你能分享你的錯誤日誌嗎? –
我說,這是在這條線:在com.example.dasilvadd.students.ModifierBranche.onCreate(ModifierBranche.java:64),這是ü給我行了.. –