我正在开发一个使用jfeinstein10/SlidingMenu Action Bar Sherlock的Android应用程序。
这是我第一次使用它而且我不知道如何在非全屏模式下打开它。我想看看活动和菜单。
这是我的 menu_list.xml :
<?xml version="1.0" encoding="utf-8"?>
<ListView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="5dip"
android:paddingRight="5dip" />
我的 menu_row.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="50dp"
android:orientation="horizontal" >
<ImageView
android:id="@+id/menuIcon"
android:layout_width="50dp"
android:layout_height="50dp"
android:padding="10dp"
android:src="@drawable/ic_launcher" />
<TextView
android:id="@+id/menuTitle"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center_vertical"
android:padding="10dp"
android:text=""
android:textAppearance="@android:style/TextAppearance.Medium" />
</LinearLayout>
我的 menu.xml :
<?xml version="1.0" encoding="utf-8"?>
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/slidingMenuFragment"
android:name="com.com.msx.fragments.MenuFragment"
android:layout_width="2dp"
android:layout_height="match_parent">
</fragment>
我的 dimens.xml :
<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen name="slidingmenu_width">5dp</dimen>
<dimen name="slidingmenu_offset">60dp</dimen>
<dimen name="list_padding">10dp</dimen>
<dimen name="shadow_width">15dp</dimen>
<integer name="num_cols">1</integer>
</resources>
onCreate
用于我的活动:
@覆盖
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setBehindContentView(R.layout.menu);
setSlidingActionBarEnabled(false);
slidingMenu = new SlidingMenu(this);
slidingMenu.setMode(SlidingMenu.LEFT);
slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_MARGIN);
slidingMenu.setShadowWidthRes(R.dimen.shadow_width);
slidingMenu.setShadowDrawable(R.drawable.shadow);
slidingMenu.setBehindOffsetRes(R.dimen.slidingmenu_offset);
slidingMenu.setFadeDegree(0.35f);
slidingMenu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);
getSupportActionBar().setDisplayShowCustomEnabled(true);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}
MenuFragment
:
public class MenuFragment extends ListFragment
{
private static final String TAG = "MenuFragment";
/**
* Menu items to show in this Sliding Menu.
*/
private ArrayList<MenuItem> mMenuItems;
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState)
{
return inflater.inflate(R.layout.menu_list, null);
}
public void onActivityCreated(Bundle savedInstanceState)
{
super.onActivityCreated(savedInstanceState);
// Get menu items.
mMenuItems = getMenuItems();
MenuAdapter adapter = new MenuAdapter(getActivity(),
R.layout.menu_row, mMenuItems);
setListAdapter(adapter);
}
/**
* Get menu items to show on Sliding menu.
* @return
*/
private ArrayList<MenuItem> getMenuItems()
{
[ ... ]
}
}
我想像Facebook的应用程序一样显示菜单。 我该怎么做?
答案 0 :(得分:1)
查看我在此发布的代码SlindingMenu without ActionBar,它适用于我作为Facebook / Foursquare菜单。这些行没有实现/与您不同:
menu.setMode(SlidingMenu.LEFT);
menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
试试吧。
答案 1 :(得分:0)
搜索我发现了以下内容:
SlidingMenu sm = getSlidingMenu();
sm.setShadowWidthRes(R.dimen.slidingmenuWidth);
sm.setBehindOffsetRes(R.dimen.slidingmenuOffset);
sm.setFadeDegree(0.35f);
sm.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
<dimen name="slidingmenuWidth">15dp</dimen>
<dimen name="slidingmenuOffset">60dp</dimen>
答案 2 :(得分:-1)
我不知道你是否仍然需要这个答案,但我使用相同的滑动菜单遇到了同样的问题,我修改了这个参数的尺寸:
lateralMenu.setBehindOffsetRes(R.dimen.slidingmenu_offset);
如果设置为0dp,则会全屏打开滑动菜单。对于我的应用程序,如果我使用平板电脑或手持设备,我需要两个不同尺寸的滑动菜单。我使用不同的dimen.xml文件为此参数设置了不同的维度。
希望有所帮助。
答案 3 :(得分:-1)
请试试这个......
getSlidingMenu().setBehindOffset(100);