DrawerLayout与Fragment的联用

1.xml代码

2.MainActivity继承FragmentActivity

import android.os.Bundle;import android.app.Activity;import android.support.v4.app.Fragment;import android.support.v4.app.FragmentActivity;import android.support.v4.app.FragmentTransaction;import android.support.v4.widget.DrawerLayout;import android.view.Menu;import android.view.View;import android.widget.AdapterView;import android.widget.ArrayAdapter;import android.widget.ListView;import android.widget.RelativeLayout;import android.widget.AdapterView.OnItemClickListener;public class MainActivity extends FragmentActivity{    /*     * DrawerLayout与Fragment的联用     * DrawerLayout相关:     * 1.一般内容层使用framelayout     * 2.slidingLayout需要设置一个layout_grative属性     *   文档建议使用android:layout_gravity="start"     */                        public static final String[] TITLES =    { "Henry IV (1)", "Henry V", "Henry VIII", "Richard II", "Richard III", "Merchant of Venice", "Othello", "King Lear" };    private DrawerLayout mDrawer_layout;    private RelativeLayout mMenu_layout;                        @Override    protected void onCreate(Bundle savedInstanceState)    {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);                                mDrawer_layout = (DrawerLayout) findViewById(R.id.drawer_layout);        mMenu_layout = (RelativeLayout) findViewById(R.id.menu_layout);                                ListView menu_listview = (ListView) mMenu_layout.findViewById(R.id.menu_listView);                                menu_listview.setAdapter(new ArrayAdapter
(this, android.R.layout.simple_expandable_list_item_1, TITLES)); //监听菜单 menu_listview.setOnItemClickListener(new DrawerItemClickListener()); } public class DrawerItemClickListener implements OnItemClickListener { @Override public void onItemClick(AdapterView
parent, View view, int position, long id) { FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); Fragment fragment = null; //根据item点击行号判断启用哪个Fragment switch (position) { case 0: fragment = new FirstFragment(); break; case 1: fragment = new NextFragment(); break; default: break; } ft.replace(R.id.fragment_layout, fragment); ft.commit(); mDrawer_layout.closeDrawer(mMenu_layout);//点击后关闭mMenu_layout } } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main, menu); return true; } }

3.Fragment类

import android.os.Bundle;import android.support.v4.app.Fragment;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;public class FirstFragment extends Fragment{    @Override    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)    {        View layout = inflater.inflate(R.layout.firstlayout, null);        return layout;    }}

public class NextFragment extends Fragment{    @Override    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)    {        View layout = inflater.inflate(R.layout.nextlayout, null);        return layout;    }}