思路:
1.首先创建Fragment
2.把fragment
3.给MainActivity添加Fragment
主界面
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import com.example.admin.zhbj.fragment.ContentFragment;
import com.example.admin.zhbj.fragment.LeftMenuFragment;
import com.slidingmenu.lib.SlidingMenu;
public class MainActivity extends FragmentActivity {
private static final String FRAGMENT_LEFT_MENU = "fragment_right_menu";
private static final String FRAGMENT ="fragment_content" ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
SlidingMenu menu = new SlidingMenu(this);
menu.setMode(SlidingMenu.RIGHT);
// 设置触摸屏幕的模式
menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
menu.setShadowWidthRes(R.dimen.shadow_width);
// 设置滑动菜单视图的宽度
menu.setBehindOffsetRes(R.dimen.slidingmenu_offset);
// 设置渐入渐出效果的值
menu.setFadeDegree(0.35f);
/**
* SLIDING_WINDOW will include the Title/ActionBar in the content
* section of the SlidingMenu, while SLIDING_CONTENT does not.
*/
menu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);
//为侧滑菜单设置布局
menu.setMenu(R.layout.fragment_right_menu);
initFragment();
}
/**
* 初始化Fragment,将Fragment数据填充给布局文件中
*/
private void initFragment(){
FragmentManager fm = getSupportFragmentManager();
android.support.v4.app.FragmentTransaction transaction = fm.beginTransaction();//开启事务
//用fragment替换fragmentlayout
transaction.replace(R.id.ff_letf_menu,new LeftMenuFragment(),FRAGMENT_LEFT_MENU);
transaction.replace(R.id.fl_content,new ContentFragment(),FRAGMENT);
transaction.commit();//提交事务
}
}
主界面布局和侧面布局
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/fl_content"
tools:context="com.example.admin.zhbj.MainActivity">
</FrameLayout>
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@mipmap/siding"
android:id="@+id/ff_letf_menu"
tools:context="com.admin.myapplication.MainActivity">
</FrameLayout>
Fragment
import android.view.View;
/**
* 侧边栏
* Created by admin on 2015/12/22.
*/
public class LeftMenuFragment extends BaseFragment{
@Override
public View initViews() {
View view = View.inflate(mActivity, R.layout.fragment_right_menu,null);
return view;
}
}
public class ContentFragment extends BaseFragment {
@Override
public View initViews() {
View view = View.inflate(mActivity,R.layout.fragment_content,null);
return view;
}
}
baseFragment
import android.app.Activity;
import android.content.Context;
import android.net.Uri;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
public abstract class BaseFragment extends Fragment {
public Activity mActivity;
//fragment创建
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mActivity = getActivity();
}
//处理fragment布局
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return initViews();
}
//依附的activity创建完成
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
initData();
}
@Override
public void onDestroy() {
super.onDestroy();
}
//之类必须去实现初始化布布局的方法
public abstract View initViews();
//初始化数据,可以不实现
public void initData(){
}
}
2017.02.22 更新
在这个语句中 FragmentManager fm = getSupportFragmentManager();的getSupportFragmentManager()这个方法只有在Activity继承了FragmentActivity才有!