我的android应用程序功能在屏幕底部的标签。其中一个标签应该有一个滑动菜单。我使用DrawerLayout实现了滑动菜单。但每次访问此选项卡时都会出现错误。 布局:自定义抽屉布局
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent">
</android.support.v4.view.ViewPager>
<FrameLayout
android:id="@+id/frame_container"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<!-- Screen Design for the SONGS -->
<ListView
android:id="@+id/list_slidermenu"
android:layout_width="240dp"
android:layout_height="match_parent"
android:layout_gravity="end"
android:choiceMode="singleChoice"
android:divider="@color/list_divider"
android:dividerHeight="1dp"
android:listSelector="@drawable/list_selector"
android:background="@color/list_background"/>
</android.support.v4.widget.DrawerLayout>
的logcat:
02-08 21:54:18.099: E/AndroidRuntime(12877): FATAL EXCEPTION: main
02-08 21:54:18.099: E/AndroidRuntime(12877): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.androidtablayout/com.example.androidtablayout.SongsActivity}: java.lang.ClassCastException: android.support.v4.widget.DrawerLayout cannot be cast to com.example.androidtablayout.SongsActivity$CustomDrawerLayout
02-08 21:54:18.099: E/AndroidRuntime(12877): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2100)
02-08 21:54:18.099: E/AndroidRuntime(12877): at android.app.ActivityThread.startActivityNow(ActivityThread.java:1941)
02-08 21:54:18.099: E/AndroidRuntime(12877): at android.app.LocalActivityManager.moveToState(LocalActivityManager.java:135)
02-08 21:54:18.099: E/AndroidRuntime(12877): at android.app.LocalActivityManager.startActivity(LocalActivityManager.java:347)
02-08 21:54:18.099: E/AndroidRuntime(12877): at android.widget.TabHost$IntentContentStrategy.getContentView(TabHost.java:705)
02-08 21:54:18.099: E/AndroidRuntime(12877): at android.widget.TabHost.setCurrentTab(TabHost.java:369)
02-08 21:54:18.099: E/AndroidRuntime(12877): at android.widget.TabHost$2.onTabSelectionChanged(TabHost.java:150)
02-08 21:54:18.099: E/AndroidRuntime(12877): at android.widget.TabWidget$TabClickListener.onClick(TabWidget.java:560)
02-08 21:54:18.099: E/AndroidRuntime(12877): at android.view.View.performClick(View.java:4223)
02-08 21:54:18.099: E/AndroidRuntime(12877): at android.view.View$PerformClick.run(View.java:17275)
02-08 21:54:18.099: E/AndroidRuntime(12877): at android.os.Handler.handleCallback(Handler.java:615)
02-08 21:54:18.099: E/AndroidRuntime(12877): at android.os.Handler.dispatchMessage(Handler.java:92)
02-08 21:54:18.099: E/AndroidRuntime(12877): at android.os.Looper.loop(Looper.java:137)
02-08 21:54:18.099: E/AndroidRuntime(12877): at android.app.ActivityThread.main(ActivityThread.java:4898)
02-08 21:54:18.099: E/AndroidRuntime(12877): at java.lang.reflect.Method.invokeNative(Native Method)
02-08 21:54:18.099: E/AndroidRuntime(12877): at java.lang.reflect.Method.invoke(Method.java:511)
02-08 21:54:18.099: E/AndroidRuntime(12877): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1008)
02-08 21:54:18.099: E/AndroidRuntime(12877): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:775)
02-08 21:54:18.099: E/AndroidRuntime(12877): at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:128)
02-08 21:54:18.099: E/AndroidRuntime(12877): at dalvik.system.NativeStart.main(Native Method)
02-08 21:54:18.099: E/AndroidRuntime(12877): Caused by: java.lang.ClassCastException: android.support.v4.widget.DrawerLayout cannot be cast to com.example.androidtablayout.SongsActivity$CustomDrawerLayout
02-08 21:54:18.099: E/AndroidRuntime(12877): at com.example.androidtablayout.SongsActivity.onCreate(SongsActivity.java:57)
02-08 21:54:18.099: E/AndroidRuntime(12877): at android.app.Activity.performCreate(Activity.java:5191)
02-08 21:54:18.099: E/AndroidRuntime(12877): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1094)
02-08 21:54:18.099: E/AndroidRuntime(12877): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2064)
02-08 21:54:18.099: E/AndroidRuntime(12877): ... 19 more
错误是指这个命令:mDrawerLayout = (CustomDrawerLayout) findViewById(R.id.drawer_layout);
我犯了一个CustomDrawerLayout因为我以前面对的一个错误,说明:
java.lang.IllegalArgumentException: DrawerLayout must be measured with MeasureSpec.EXACTLY.
但现在我正面临着LogCat的错误五个。
你能告诉我该怎么做吗? – nick28
@ nick28:将您的布局文件中的'android.support.v4.widget.DrawerLayout'替换为'CustomDrawerLayout'的完全限定类名称。 – CommonsWare
我换成android.support.v4.widget.DrawerLayout与com.example.androidtablayout.SongsActivity.CustomDrawerLayout但即时得到一个错误:异常渲染期间提出:装载机(COM /安卓/ IDE /月食/ ADT /内部/资源的实例/ manager/ProjectClassLoader):尝试重复名称定义:“com/example/androidtablayout/SongsActivity $ CustomDrawerLayout” – nick28