2013-01-31 4 views
7

Ich versuche, eine Anwendung mit jeremy feinstein SlidingMenu Bibliothek zu entwickeln, die ich sehr interessant fand. Ich habe alles eingerichtet und ein Beispielprojekt erstellt, nur um zu überprüfen, ob ich das gleitende Menü implementieren kann, aber leider konnte ich in meiner Anwendung kein gleitendes Menü sehen.Implementierung von Sliding Menu J. Feinstein

das sind die Dinge, was ich tat,

  • SlidinMenu aus HERE und importiert in Eclipse als android existierendes Projekt heruntergeladen. Google API-Level wurde geändert. (Jetzt keine rote Markierung mehr.)

  • Ein neues Projekt erstellt und die verschiebbare Menübibliothek hinzugefügt.

  • Wie Jfeinstein erklärt, habe ich den folgenden Code zu meinem 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); 
    
    } 
    

    }

und meine 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> 

und 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> 

und ich habe kopiert seine menu.xml, shadow.xml, dimen.xml in mein Projekt .

Und wenn ich es benutze ich sah nichts als diese Fehler,

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 

Ich weiß nicht, wo ich einen Fehler gemacht. Ich habe viel versucht und ich konnte nichts online herausfinden. Jede Art von Hilfe oder Beispiel wird sehr geschätzt. Danke!

+0

Dies scheint nicht ein Fehler mit allem, was Sie gepostet haben. Wo willst du deine Fragmente für das SlidingMenu aufblasen? – hwrdprkns

+0

@hwrdprkns Das ist was, ich verstehe wirklich nicht, wo ich einen Fehler gemacht habe. Bitte schlage mir etwas vor. –

+0

Ich vermute, dass Sie Ihr SlidingMenu nicht in RelativeLayout einschließen müssen. Dies ist jedoch kein Problem mit SlidingMenu, da es keine Fragmente verwendet. Poste dein '@ Layout/Testen', ich vermute, dass das Problem dort liegt. – hwrdprkns

Antwort

4

Ihr Problem ist here.Your Code:

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

Vom doc Beispiel:

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

Sie müssen sicherstellen, was oben und was hinter der Ansicht ist.

Update: Ich habe Ihren Code getestet, es gibt kein Problem damit. Das einzige, was ich tun musste, war das Löschen von sliding:fadeEnabled="true" wegen Kompilierungsfehler für mich. Vielleicht möchten Sie sich eine andere Stelle in Ihrem Code ansehen oder versuchen, diese Zeile zu löschen und zu versuchen.

+0

Ich habe Jus ein Layout testing.xml mit einem einfachen TextView darin hinzugefügt. Aber immer noch den gleichen Fehler. –

+0

Weil Sie sie wieder auf die gleiche Ansicht setzen. Versuchen Sie, unterschiedliche Ansichten festzulegen. – wtsang02

+0

Wie Sie gesagt haben, habe ich ein anderes XML mit etwas Text erstellt, aber wie immer, denselben Fehler bekommen! –