添加侧拉菜单
//1.将activity改为继承SlidingFragmentActivity,这样activity才能去管理侧拉菜单
public class MainActivity extends SlidingFragmentActivity {
private SlidingMenu slidingMenu;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.content);
//添加侧拉菜单slidingmenu
//2.添加侧拉菜单
//2.1获取侧拉菜单
slidingMenu = getSlidingMenu();
//2.2设置侧拉菜单的布局
setBehindContentView(R.layout.menu);
//2.3设置侧拉的方向
//LEFT : 左边
//LEFT_RIGHT : 左右
//RIGHT : 右边
slidingMenu.setMode(SlidingMenu.LEFT);
//2.4设置侧拉菜单或者内容页的显示宽度
//设置侧拉菜单宽度
//slidingMenu.setBehindWidth(220);//i 表示像素
//slidingMenu.setBehindWidthRes(res);//res 在dimens.xml文件设置宽度
//设置内容页的宽度
//lidingMenu.setBehindOffset(i);//i表示是内容页宽度
slidingMenu.setBehindOffsetRes(R.dimen.slidingmenu_content_width);
//2.5设置侧拉菜单分割线
//设置分割线的样式
slidingMenu.setShadowDrawable(R.drawable.shadow);
//设置分割线的宽度
//slidingMenu.setShadowWidth(pixels);//pixels:分割线的宽度
slidingMenu.setShadowWidthRes(R.dimen.slidingmenu_shadow_width);//resid:表示dimens.xml设置的参数
//2.6设置滑动范围
//TOUCHMODE_FULLSCREEN : 全屏触摸
//TOUCHMODE_MARGIN : 分隔线触摸
//TOUCHMODE_NONE : 不允许触摸
slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
}
}
设置侧拉菜单布局
1.创建MenuFragment,并使用textview简单测试
public class MenuFragment extends Fragment {
//初始化数据
@Override
public void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
}
//设置fragment布局样式
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
TextView textView = new TextView(getActivity());
textView.setText("侧拉菜单");
return textView;
}
//填充数据
@Override
public void onActivityCreated(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onActivityCreated(savedInstanceState);
}
}
2.填充fragment
//3.设置侧拉菜单显示布局,填充数据
//填充fragment,因为侧拉菜单的布局在Mainactivity中加载
//3.1创建fragment
MenuFragment menuFragment = new MenuFragment();
//3.2获取fragment管理者
//.findFragmentByTag(arg0) : 根据标示获取fragment,arg0:fragment的标示
getSupportFragmentManager()
//3.3开始事务
.beginTransaction()
//3.4添加fragment
//arg0 : fragment替换的控件
//arg1 : 替换的fragment
//arg2 : fragment标示,方便我们后期通过这个标示找到fragment
.replace(R.id.menu, menuFragment, "MENU")
//3.5提交
.commit();
设置侧拉菜单显示listview数据
1.创建一个MenuFragment的布局文件 menu_left
<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/lv"
android:layout_width="match_parent"
android:layout_height="match_parent"
></ListView>
</LinearLayout>
2.初始化控件,并设置相应的adapter
//设置fragment布局样式
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// TextView textView = new TextView(getActivity());
// textView.setText("侧拉菜单");
//将布局文件转化成view对象
View view = View.inflate(getActivity(), R.layout.menu_left, null);
lv = (ListView) view.findViewById(R.id.lv);
//android.R.layout.simple_list_item_1 : android系统设置好的布局文件,其中就只有一个id为text1的textview
//android.R.id.text1 : 数据要填充的textivew的id
lv.setAdapter(new ArrayAdapter<String>(getActivity(),
android.R.layout.simple_list_item_1,
android.R.id.text1,
initData()));
return view;
}
initData方法
/**
* 设置listview填充数据
* @return
*/
private List<String> initData() {
List<String> list = new ArrayList<String>();
list.add("Fragment0");
list.add("Fragment1");
list.add("Fragment2");
list.add("Fragment3");
list.add("Fragment4");
return list;
}