8

非常に興味深いことがわかった jeremy feinstein の SlidingMenu ライブラリを使用してアプリケーションを開発しようとしています。すべてをセットアップし、スライド メニューを実装できるかどうかを確認するためだけにサンプル プロジェクトを作成しましたが、残念ながらアプリケーションにスライド メニューが表示されませんでした。

これらは私がしたことです、

  • HEREから SlidinMenu をダウンロードし、Android の既存のプロジェクトとして Eclipse にインポートしました。Google 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.xmlshadow.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

どこで間違えたのかわからない。多くのことを試しましたが、オンラインで何も理解できませんでした。どんな種類の助けや例も大歓迎です。ありがとう !

4

1 に答える 1

4

あなたの問題はここにあります。あなたのコード:

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

ドキュメントの例から:

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

ビューの上にあるものとビューの後ろにあるものを確認する必要があります。

更新:コードをテストしましたが、問題はありません。私がしなければならなかったsliding:fadeEnabled="true"のは、コンパイルエラーのために削除することだけでした。コードの別の場所を確認するか、その行を削除して試してください。

于 2013-01-31T17:32:40.463 に答える