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; }}