很是喜欢 网易新闻客户端的 界面风格,一直都想知道是怎么实现的。下午敲代码太累了,浏览了一下网页发现了几个android的开源项目,而后和网易新闻客户端一对比知道使用的应该是sliding menu 还有个下拉刷新的开源项目,不知道有没有使用actionbarsherlock。java
在csdn上有一篇博客写的就是防网易新闻客户端的文章(http://blog.csdn.net/top_code/article/details/17360853)android
索性就按照博客做者的文章搭了一下Eclipse环境,以为不过瘾就照着文章在android studio中进行实现,可是能力不够搭的aar包,怎么都不起做用。只能手动的复制slidingmenu代码到本身的工程里面。
git
一开始用得时actionbarsherlock,听说这俩是绝配。奈何我不会使用actionbarsherlock,复制完slidingmenu代码和例子代码后,getActionbar()方法老师报空指针,无奈只能换回官方的兼容包,使用ActionBarActivity来进行实现。天助我没有大问题,可以成功的实现。可是仍是报一个错
app
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.lee.learn.slidingmenu.testsildingmenu.app/com.lee.learn.slidingmenu.testsildingmenu.app.MainActivity}: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity. at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245) at android.app.ActivityThread.access$800(ActivityThread.java:135) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:136) at android.app.ActivityThread.main(ActivityThread.java:5017) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595) at dalvik.system.NativeStart.main(Native Method) Caused by: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity. at android.support.v7.app.ActionBarActivityDelegate.onCreate(ActionBarActivityDelegate.java:108) at android.support.v7.app.ActionBarActivityDelegateICS.onCreate(ActionBarActivityDelegateICS.java:57) at android.support.v7.app.ActionBarActivity.onCreate(ActionBarActivity.java:98) at com.jeremyfeinstein.slidingmenu.lib.app.SlidingActivity.onCreate(SlidingActivity.java:21) at com.lee.learn.slidingmenu.testsildingmenu.app.MainActivity.onCreate(MainActivity.java:38) at android.app.Activity.performCreate(Activity.java:5231) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245) at android.app.ActivityThread.access$800(ActivityThread.java:135) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:136) at android.app.ActivityThread.main(ActivityThread.java:5017) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595) at dalvik.system.NativeStart.main(Native Method)
明明本身的Theme已经换成Theme.AppCompat.Light.DarkActionBar了,按说应该没问题啊可是仍是出错。oop
代码以下this
http://git.oschina.net/lixuwei/TestSildingMenuspa