6

私は初心者のAndroidプログラマーであり、JFeinsteinのすばらしいスライドメニューをいじって、それがどのように機能するかを理解し、アプリに実装しようとしていますが、すべての実装で、背後のビューが上記のビューの100%をカバーしています。

また、上記のビューに戻る唯一の方法は、戻るボタンを押すことです。したがって、"sliding"戻ることもできません。私が正しく理解していれば、これはによって制御されるべきですがBehindViewOffset、それでも私はそれを機能させていないようです。とにかく、ここに小さなサンプルコードがあります:

これが私のMainActivity

public class MainActivity extends SlidingActivity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        setBehindContentView(R.layout.testing);

        populate();

        SlidingMenu menu = new SlidingMenu(this);
        menu.setMode(SlidingMenu.LEFT);
        menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_MARGIN);
        menu.setBehindOffsetRes(R.dimen.slidingmenu_offset);
        menu.setFadeDegree(0.35f);
        menu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);
        setSlidingActionBarEnabled(true);
        menu.setMenu(R.layout.testing);

    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
        case android.R.id.home:
            toggle();
            return true;
        default:
            return super.onOptionsItemSelected(item);
        }
    }

    private void populate() {

        ListView lv = (ListView) findViewById(R.id.listView1);
        String[] values = new String[] { "One", "Two", "Three", "Four", "Five",
                "Six", "Seven", "Eight", "Nine", "Ten" };
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_1, android.R.id.text1, values);
        lv.setAdapter(adapter);

    }
}

そしてレイアウト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" >

    <ListView
        android:id="@+id/listView1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >
    </ListView>

</LinearLayout>

残念ながら、より多くの担当者を獲得するまでスクリーンショットを投稿できません。

編集: dimen.xmlを追加しました

    <resources>
    <dimen name="slidingmenu_offset">120dp</dimen>
    <dimen name="list_padding">10dp</dimen>
    <dimen name="shadow_width">15dp</dimen>
    <integer name="num_cols">1</integer>
</resources>
4

1 に答える 1

8

わかりましたので、例をよく見て、最終的に変更することで機能するようになりました

SlidingMenu menu = new SlidingMenu(this);

為に:

SlidingMenu menu = getSlidingMenu();

メイン アクティビティの onCreate の最終的なコードは次のとおりです。

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    setBehindContentView(R.layout.testing);

    populate();

    SlidingMenu menu = getSlidingMenu();

    menu.setMode(SlidingMenu.LEFT);
    menu.setShadowWidthRes(R.dimen.shadow_width);
    menu.setShadowDrawable(R.drawable.shadow);
    menu.setBehindOffsetRes(R.dimen.slidingmenu_offset);
    menu.setFadeDegree(0.35f);
    menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
    setSlidingActionBarEnabled(true);


}
于 2013-01-05T13:52:58.933 に答える