这个SlidingMenu似乎已经附加了Android

时间:2014-09-11 05:38:00

标签: android slidingmenu jfeinstein

我收到以下错误

此SlidingMenu似乎已经附加

这是我的源代码

SlidingMenu menu = new SlidingMenu(this, SlidingMenu.SLIDING_WINDOW);
menu.setMode(SlidingMenu.RIGHT);
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);

我使用过sliding menu library by jfeinstein

我想用actionbar滑动菜单。请帮帮我。

2 个答案:

答案 0 :(得分:0)

<强>问题

来自attachToActivity方法中的SlidingMenu.java

if (getParent() != null)
        throw new IllegalStateException("This SlidingMenu appears to already be attached");

此处getParent不为null,因为在创建SlidingMenu的对象时已经分配了SlidingMenu.SLIDING_WINDOW。

e.g。 SlidingMenu menu = new SlidingMenu(this, SlidingMenu.SLIDING_WINDOW);

上面的代码行调用attachToActivity。见代码

public SlidingMenu(Activity activity, int slideStyle) {
    this(activity, null);
    this.attachToActivity(activity, slideStyle);
}

因此,您要将菜单添加到布局两次。这就是问题的原因。

解决方案使用以下其中一项。

  1. 使用以下构造函数

    SlidingMenu menu = new SlidingMenu(this);

  2. OR

    1. 删除menu.attachToActivity();线

答案 1 :(得分:0)

我遇到了同样的问题。 com.jeremyfeinstein.slidingmenu.lib中有一个R.java文件,您可能会错过它。 您可以将其从其他SlidingMenu项目复制到gen文件夹。