滑动菜单不能通过滑动打开

4
我正在尝试在我的应用程序中使用 Sliding Menu ,但是我遇到了一个问题,无法用手指来滑动它。如果我调用toggle()方法,我可以打开它,当我按下home图标或者在ActionBar上滑动手指时也可以打开它,但如果我滑动手指以打开所有内容,什么都没有发生。

这是我的活动

public class SmsActivity extends SlidingActivity {

@Override
public void onCreate(Bundle state){
    super.onCreate(state);
    setContentView(R.layout.sms_layout);
    Intent i = getIntent();
    view = i.getIntExtra("sms_view", 1);

    ActionBar bar = getActionBar();
    bar.setDisplayHomeAsUpEnabled(true);
    bar.setIcon(R.drawable.menu_button);
    setBehindContentView(R.layout.sms_menu_layout);

    SlidingMenu menu = getSlidingMenu();
    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);
    setSlidingActionBarEnabled(true);

}

菜单应该打开一个 PreferenceFragment,而内容只是一个 ListFragment
以下是该活动的 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" >

<fragment android:id="@+id/sms_frame"
    android:name="com.app.notifyme.Fragments.ContactListFragment"
    android:layout_width="match_parent"
    android:layout_height="match_parent"/>

</LinearLayout>

我尝试按照示例操作,但是我和我的代码没有看到什么不同,所以我不知道我做错了什么?


tyczj,我遇到了完全相同的问题!为此浪费了一整天的时间,但是没有成功。示例项目运行良好,所以我决定只是对其进行“重构”,而不是从头开始编写。 - agamov
3个回答

2
我认为您可能漏掉了这两行代码:

我认为您可能漏掉了这两行代码:

menu.attachToActivity(this, SlidingMenu.SLIDING_WINDOW);
menu.setMenu(R.layout.sm_app);

这些代码将你的SlidingMenu连接到你的Activity - 如果它没有被附加,你就看不到菜单。

这些是在扩展“Activity”时使用的。我正在扩展“SliderActivity”。如果我放入这些行,就会出现错误,说活动已经附加,并且找到了重复的XML。 - tyczj
好的,抱歉。我没有扩展SliderActivity,所以不清楚。我扩展了SherlockActivity。 - Booger
无论如何,如果我将它更改为“activity”并添加这些行,我仍然会得到相同的结果。 - tyczj

2
我遇到了同样的问题,我用以下方法解决了它:
menu.attachToActivity(this, SlidingMenu.SLIDING_WINDOW);

替代

menu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);

例子:

menu = new SlidingMenu(this);
menu.setMode(SlidingMenu.LEFT);
menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_MARGIN);

menu.setShadowDrawable(R.drawable.bg_menu_shadow);
menu.setShadowWidthRes(R.dimen.bg_shadow_width);

menu.setBehindScrollScale(0.0f);
menu.setFadeDegree(0.35f);
menu.attachToActivity(this, SlidingMenu.SLIDING_WINDOW);
menu.setMenu(R.layout.menu);

请保重


0
尝试在Fragment的onCreateView方法中返回的视图上设置setClickable(true)。

该片段只是一个ListFragment,因此我不会覆盖onCreateView,因为实际上没有要返回的布局。 - tyczj

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