public class SlidingmenuActivity extends SlidingFragmentActivity implements onSlindingItemClick{
private SlidingMenu slidingMenu;
public void oncreat(Bunlde saveInstanceState);
setTitle("首页");
// 1.设置slidingMenu首页显示的内容,通常用一个fragment来加载
setContentView(R.layout.slidingmenu_frame_content);
// 2.设置slidingMenu左边的视图
setBehindContentView(R.layout.slidingmenu_left_menu);
// 3.获得实例并设置相应属性
slidingMenu = getSlidingMenu();
slidingMenu.setMode(SlidingMenu.Left);
slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_MARGIN); //触摸边缘才会滑动
slidingMenu.setFadeDegree(0.35f);//设置滑动的阴影透明度
slidingMenu.setShadowWidthRes(R.dimen.shodow_wide)//设置阴影图片宽度
slidingMenu.setBehindOffsetRes();//SlidingMenu滑出主页时显示的剩余宽度
slidingMenu.setShadowDrawable(R.drawable.drawer_shadow);//设置阴影图片
//4.添加视图
FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction;
fragmentTransaction.replace(R.id.content,New homeFragment()); // R.id.content为R.layout.slidingmenu_frame_content里的FrameLayout
fragmentTransaction.replace(R.id.left_menu, new LeftMenuFragment()); //填充leftMenu视图
fragmentTransaction.commit();
//5.使用左上方icon可点,这样在onOptionsItemSelected里面才可以监听到R.id.home
getActionBar().setDisplayHomeAsUpEnabled(true); //注意:android:theme NoActionBar不要设置!
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub
switch (item.getItemId()) {
case android.R.id.home:
toggle(); //判断sliding是否展开
return true;
default:
return super.onOptionsItemSelected(item);
}
}
//seletItem是onSlindingItemClick接口的方法,实现后就可以通过Fragment来操作slidingmenu
@Override
public void seletItem(int position) {
// TODO Auto-generated method stub
Fragment fragment = null;
switch (position) {
case 0:
fragment = new UserInfoFragment();
break;
case 1:
fragment = new NotificationSettingFragment();
break;
case 2:
fragment = new ChangePasswordFragment();
break;
case 3:
fragment = new AboutUsFragment();
break;
default:
break;
}
if(fragment!=null){
FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
fragmentTransaction.replace(R.id.content, fragment).commit();
slidingMenu.showContent();
}
}
使用slidingmenu中还会遇到fragment
public class LeftMenuFragMent extends Fragment{
private Activity mActivity; //用于在Fragment中直接用Activity跳转
private onSlidingItemClick callBack; //此接口需要在slidingMenuActivity中实现,通过操作Fragment来改变slidingMenuActivity的状态或值
//1.制定接口
public interface onSlidingItemClick{
public void seletItem(int position);
}
//2.绑定Activity
@Override
public void onAttach(Activity activity) {
// TODO Auto-generated method stub
try{
callBack = (onSlidingItemClick)activity;
} catch(ClassCastException e) {
throw new ClassCastException(activity.toString()
+ " must implement OnResolveTelsCompletedListener");
}
super.onAttach(activity);
}
//3.初始化fragment
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// TODO Auto-generated method stub
View view = inflater.inflate(R.layout.tab_center, null);
mActivity = this.getActivity();
findView(view);
return view;
}
private void findView(View view){
RelativeLayout userInfo_relativeLayout = (RelativeLayout)view.findViewById(R.id.tab_center_userInfo_relativeLayout);
RelativeLayout notifications_relativeLayout = (RelativeLayout)view.findViewById(R.id.tab_center_notifications_relativeLayout);
RelativeLayout changepassword_relativeLayout = (RelativeLayout)view.findViewById(R.id.tab_center_changepassword_relativeLayout);
RelativeLayout opinion_relativeLayout = (RelativeLayout)view.findViewById(R.id.tab_center_opinion_relativeLayout);
RelativeLayout about_relativeLayout = (RelativeLayout)view.findViewById(R.id.tab_center_about_relativeLayout);
RelativeLayout tab_center_help_relativeLayout = (RelativeLayout)view.findViewById(R.id.tab_center_help_relativeLayout);
Button logout_button = (Button)view.findViewById(R.id.tab_center_logout_button);
userInfo_relativeLayout.setOnClickListener(new OnClickListener() { //个人信息
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
callBack.seletItem(0);
}
});
notifications_relativeLayout.setOnClickListener(new OnClickListener() { //消息提醒设置
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
callBack.seletItem(1);
}
});
changepassword_relativeLayout.setOnClickListener(new OnClickListener() { //修改密码
@Override
public void onClick(View v) {
callBack.seletItem(2);
// TODO Auto-generated method stub
}
});
about_relativeLayout.setOnClickListener(new OnClickListener() { //关于我们
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
callBack.seletItem(3);
}
});
tab_center_help_relativeLayout.setOnClickListener(new OnClickListener() { //帮助中心
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent(mActivity,HelpActivity.class);
startActivity(intent);
}
});
logout_button.setOnClickListener(new OnClickListener() { //用户注销
@Override
public void onClick(View v) {
AlertDialog.Builder builder = new AlertDialog.Builder(mActivity);
builder.setMessage("要退出登录吗?")
.setCancelable(true).setPositiveButton("确定", new android.content.DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
dialog.dismiss();
MainApplication.loginedUser = new User();
}
}).setNegativeButton("取消", new android.content.DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
dialog.dismiss();
}
});
AlertDialog alert = builder.create();
alert.show();
// TODO Auto-generated method stub
}
});
}
}