在Android中右滑动二级菜单

时间:2013-02-20 06:53:59

标签: android slider actionbarsherlock

我从here获得了滑动菜单库,我不知道这里有什么问题,在这个右侧幻灯片菜单中出现但是它的空白。这是代码

// customize the SlidingMenu
        SlidingMenu sm = getSlidingMenu();
        sm.setMode(SlidingMenu.LEFT_RIGHT);
        sm.setShadowWidthRes(R.dimen.shadow_width);
        sm.setShadowDrawable(R.drawable.shadow);
        sm.setBehindOffsetRes(R.dimen.slidingmenu_offset);
        sm.setFadeDegree(0.35f);
        //sm.setTouchModeAbove(SlidingMenu.LEFT_RIGHT);



        getSupportActionBar().setDisplayShowHomeEnabled(true);
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);

这是我打电话给secondarymenu的方式

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
        case android.R.id.home:
            showSecondaryMenu();

            return true;
        }
        return super.onOptionsItemSelected(item);
    }
}

这是我实例化片段的方式。

setContentView(R.layout.activity_home_frame);
        getSupportFragmentManager()
        .beginTransaction()
        .replace(R.id.home_screen, new MapFragment())
        .commit();

        getSlidingMenu().setSecondaryMenu(R.layout.activity_home_frame);
        getSupportFragmentManager()
        .beginTransaction()
        .replace(R.id.home_screen, new MapFragment())
        .commit();

        // set the Behind View
        setBehindContentView(R.layout.activity_settings_frame);
        getSupportFragmentManager()
        .beginTransaction()
        .replace(R.id.settings_screen, new SettingsFragment())
        .commit();

我的地图片段

public class MapFragment extends SherlockFragment{

    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        return inflater.inflate(R.layout.activity_map, null);
    }

    @Override
    public void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);

    }

}

设置片段

public class SettingsFragment extends SherlockFragment{

    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        return inflater.inflate(R.layout.activity_settings, null);
    }

    @Override
    public void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);

    }

}

设置布局

<?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="fill_parent"
        android:layout_height="fill_parent"
        android:text="Settings view."
        ></TextView>
</LinearLayout>

地图布局

<?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="fill_parent"
        android:layout_height="wrap_content"
        android:text="Your map "
        ></TextView>
</LinearLayout>

请告诉我为什么我的右侧菜单空白?

1 个答案:

答案 0 :(得分:3)

它成功了,问题是。而不是这个

 getSlidingMenu().setSecondaryMenu(R.layout.activity_home_frame);

我需要致电

getSlidingMenu().setSecondaryMenu(getLayoutInflater().inflate(R.layout.activity_map, null));