2 给DrawerLayout中的控件设置一下两种属性,属性设置给谁,侧拉出来的就是谁;可以设置给图片, 按钮 ListView等等;
android:layout_gravity="left" android:choiceMode="singleChoice"
drawerLayout.closeDrawer(lv);
---------------------------------
布局
DrawerLayout是布局文件
<?xml version="1.0" encoding="utf-8"?> <android.support.v4.widget.DrawerLayout android:id="@+id/drawerLayout" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.wzq.drawerlayoutdemo2.MainActivity"> <FrameLayout android:id="@+id/frameLayout" android:layout_width="match_parent" android:layout_height="match_parent"/> <!-- 和drawerLayout配合需要配这两个属性 android:layout_gravity="left" android:choiceMode="singleChoice" -->
//必须放到最下面
<ListView android:id="@+id/lv" android:background="@color/colorPrimary" android:layout_width="300dp" android:layout_gravity="left" android:choiceMode="singleChoice" android:layout_height="match_parent"/> </android.support.v4.widget.DrawerLayout>------------------------------------代码
public class MainActivity extends AppCompatActivity { private DrawerLayout drawerLayout; private FrameLayout frameLayout; private ListView lv; private ArrayList<String> lists; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); initData(); setListener(); } private void initView() { drawerLayout = (DrawerLayout) findViewById(R.id.drawerLayout); frameLayout = (FrameLayout) findViewById(R.id.frameLayout); lv = (ListView) findViewById(R.id.lv);lv为加这行代码的id //android:layout_gravity="left" //android:choiceMode="singleChoice"
//必须设置
drawerLayout.closeDrawer(lv);} private void initData() { lists = new ArrayList<>(); for (int i = 0; i < 5; i++) { lists.add("DrawerLayout"+i); } ArrayAdapter<String> stringArrayAdapter = new ArrayAdapter<String>(MainActivity.this,android.R.layout.simple_list_item_1, lists); lv.setAdapter(stringArrayAdapter); } private void setListener() { lv.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { MFragment mFragment = new MFragment(); Bundle bundle = new Bundle(); bundle.putString("name", lists.get(i)); mFragment.setArguments(bundle); getSupportFragmentManager().beginTransaction().replace(R.id.frameLayout,mFragment).commit(); //关闭drawer drawerLayout.closeDrawer(lv); } }); } }//点击事件
dr.addDrawerListener(new DrawerLayout.DrawerListener() { //滑动的方法 @Override public void onDrawerSlide(View drawerView, float slideOffset) { } //打开的方法 @Override public void onDrawerOpened(View drawerView) { Toast.makeText(MainActivity.this,"你已打开",Toast.LENGTH_LONG).show(); } //关闭的方法 @Override public void onDrawerClosed(View drawerView) { Toast.makeText(MainActivity.this,"你已关闭,欢迎再来",Toast.LENGTH_LONG).show(); } @Override public void onDrawerStateChanged(int newState) { } });