2013-01-31 63 views
7

我試圖用jeremy feinstein的SlidingMenu庫開發一個應用程序,我發現它非常有趣。我已經建立了一切,並創建了一個示例項目來檢查我是否能夠實現滑動菜單,但不幸的是,我的應用程序中看不到任何滑動菜單。滑動菜單的實現J. Feinstein

這些都是事我做什麼,

  • HERE下載SlidinMenu並導入到Eclipse作爲一個 機器人現有的項目。改變了它的谷歌API級別。 (現在沒有更多的紅色標記)

  • 創建一個新項目,並添加滑動菜單庫。

  • 由於jfeinstein解釋,我下面的代碼添加到我的MainActivity.java

    public class MainActivity extends Activity { 
    
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
    
        setTitle("Title !"); 
    
        setContentView(R.layout.activity_main); 
    
        SlidingMenu menu = new SlidingMenu(this); 
        menu.setMode(SlidingMenu.LEFT); 
        menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN); 
        menu.setShadowWidthRes(R.dimen.shadow_width); 
        menu.setShadowDrawable(R.drawable.shadow); 
        menu.setBehindOffsetRes(R.dimen.slidingmenu_offset); 
        menu.setFadeDegree(0.35f); 
        menu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT); 
        menu.setMenu(R.layout.menu); 
    
    } 
    

    }

和我activity_main.xml中

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context=".MainActivity" > 


<com.slidingmenu.lib.SlidingMenu 
    xmlns:sliding="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/slidingmenulayout" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    sliding:viewAbove="@layout/testing" 
    sliding:viewBehind="@layout/testing_two" 
    sliding:touchModeAbove="margin" 
    sliding:behindWidth="@dimen/shadow_width" 
    sliding:behindScrollScale="0.5" 
    sliding:shadowDrawable="@drawable/shadow" 
    sliding:shadowWidth="@dimen/shadow_width" 
    sliding:fadeEnabled="true" 
    sliding:selectorEnabled="true"/> 

</RelativeLayout> 

menu_frame.xml

<?xml version="1.0" encoding="utf-8"?> 
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/menu_frame" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" /> 

testing.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" > 

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Test"/> 
</LinearLayout> 

和我抄他的menu.xml文件shadow.xmldimen.xml到我的項目。

當我運行它,我什麼也沒看見,但這些錯誤,

01-31 22:18:13.027: E/AndroidRuntime(759): FATAL EXCEPTION: main 
01-31 22:18:13.027: E/AndroidRuntime(759): java.lang.RuntimeException: Unable to start activity ComponentInfo{android.demo.com/android.demo.com.MainActivity}: android.view.InflateException: Binary XML file line #2: Error inflating class fragment 

我不知道我犯了一個錯誤。試了很多,我無法找到任何網上的東西。任何形式的幫助或例子都非常感謝。 謝謝!

+0

這似乎不是您發佈的任何內容的錯誤。你在哪裏試圖爲SlidingMenu充氣你的碎片? – hwrdprkns

+0

@hwrdprkns那是什麼,我真的不明白我犯了什麼錯誤。請給我一些建議。 –

+0

我懷疑你不需要將你的SlidingMenu包含在RelativeLayout中。雖然,這不是SlidingMenu的問題,因爲它不使用片段。發佈你的'@ layout/testing',我懷疑這是問題所在。 – hwrdprkns

回答

4

你的問題是here.Your代碼:

sliding:viewAbove="@layout/menu_frame" 
sliding:viewBehind="@layout/menu_frame" 

從DOC例如:

sliding:viewAbove="@layout/YOUR_ABOVE_VIEW" 
sliding:viewBehind="@layout/YOUR_BEHIND_BEHIND" 

你必須要知道什麼是上面的,什麼是視圖後面。

更新:我測試了你的代碼,它沒有問題。我唯一需要做的就是刪除sliding:fadeEnabled="true",因爲我的編譯錯誤。您可能想要查看代碼中的其他位置,或嘗試刪除該行並嘗試。

+0

我有一個jus增加了一個簡單的TextView在其中的佈局testing.xml。但仍然有同樣的錯誤。 –

+0

因爲您再次將它們設置爲相同的視圖。嘗試設置不同的視圖。 – wtsang02

+0

正如你所說,我用一些文字創建了另一個XML,但像往常一樣,得到相同的錯誤! –