这是一个例子
创建一个Fragment是NavigationDrawerFragment.class
public class NavigationDrawerFragment extends Fragment {
private ActionBarDrawerToggle mDrawerToggle;
private DrawerLayout mDrawerLayout;
private int mFragmentId;
private View mFragmentContainerView;
public interface EventDrawerListener {
void someEvent(String s);
}
private EventDrawerListener mEventDrawerListener;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.slide_menu, container, false);
return v;
}
public void setUp(int fragmentID, DrawerLayout drawerLayout, EventDrawerListener eventDrawerListener) {
this.mFragmentId = fragmentID;
this.mEventDrawerListener = eventDrawerListener;
mFragmentContainerView = getActivity().findViewById(mFragmentId);
mDrawerLayout = drawerLayout;
ActionBar actionBar = getActionBar();
actionBar.setDisplayHomeAsUpEnabled(false);
actionBar.setHomeButtonEnabled(true);
mDrawerToggle = new ActionBarDrawerToggle(getActivity(), mDrawerLayout, R.string.open, R.string.close) {
@Override
public void onDrawerOpened(View drawerView) {
super.onDrawerOpened(drawerView);
getActivity().invalidateOptionsMenu(); // creates call to onPrepareOptionsMenu()
}
@Override
public void onDrawerClosed(View drawerView) {
super.onDrawerClosed(drawerView);
getActivity().invalidateOptionsMenu(); // creates call to onPrepareOptionsMenu()
}
};
mDrawerLayout.setDrawerListener(mDrawerToggle);
}
private ActionBar getActionBar() {
return ((AppCompatActivity) getActivity()).getSupportActionBar();
}
}
在activity_main.xml中
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/layout_main"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v4.widget.DrawerLayout
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<include layout="@layout/toolbar" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Content Your Main"/>
</RelativeLayout>
<fragment
android:id="@+id/navigation_drawer"
android:name="your.package.NavigationDrawerFragment"
android:layout_width="@dimen/width_menu"
android:layout_height="match_parent"
android:layout_gravity="start"
android:splitMotionEvents="false"
tools:layout="@layout/slide_menu" />
</android.support.v4.widget.DrawerLayout>
在 MainActivity.class 中
public class MainActivity extends Activity{
private NavigationDrawerFragment mNavigationDrawerFragment;
private DrawerLayout mDrawerLayout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setUpDrawer();
ImageView image=(ImageView) findViewById(R.id.image_home);
image.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (mDrawerLayout.isDrawerOpen(Gravity.LEFT)) {
mDrawerLayout.closeDrawer(Gravity.LEFT);
} else {
mDrawerLayout.openDrawer(Gravity.LEFT);
}
}
});
}
private void setUpDrawer() {
mNavigationDrawerFragment = (NavigationDrawerFragment) getSupportFragmentManager().findFragmentById(R.id.navigation_drawer);
mNavigationDrawerFragment.setUp(R.id.relative_category, (DrawerLayout) findViewById(R.id.drawer_layout), this);
mDrawerLayout.setScrimColor(getResources().getColor(android.R.color.transparent));
}
}
工具栏.xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/my_toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:layout_alignParentTop="true"
android:background="@color/color_bg_splash"
android:minHeight="?attr/actionBarSize"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:popupTheme="@style/ThemeOverlay.AppCompat.Dark">
<ImageView
android:id="@+id/image_home"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="left|center_vertical"
android:gravity="center"
android:paddingBottom="@dimen/padding16dp"
android:paddingRight="@dimen/padding16dp"
android:paddingTop="@dimen/padding16dp"
android:src="@drawable/icon_menu" />
</android.support.v7.widget.Toolbar>
希望对你有帮助!!!