侧滑菜单未正确显示

6
我是一名初学者的Android程序员,我正在试玩JFeinstein's awesome sliding menu,尝试弄清楚它的工作原理并将其实现在我的应用程序中,但在所有的实现中,后面的视图都覆盖了上面的视图。
此外,唯一回到上面视图的方式是按下返回按钮,所以也没有“滑动”回去。如果我理解正确,这应该由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>

你是否正确添加了 example/res/values/dimen.xmlR.dimen.slidingmenu_offset. 是否被正确引用了呢? - Vikalp Patel
是的,但为了保险起见,我已将其添加到帖子中。 - Alan Poggetti
1个回答

8

好的,我仔细查看了示例,并最终通过更改

来使其工作。
SlidingMenu menu = new SlidingMenu(this);

for:

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);


}

1
谢谢兄弟。我也遇到了同样的问题,你的解决方案也是让我解决了它! - Elad Nava

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接