1 定义抽屉菜单的显示
activity_main.xml | activity_main_drawer.xml | activity_main_drawer_listener.xml |
activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <android.support.v4.widget.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:id="@+id/id_drawer_layout" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.senior0401_test.MainActivity"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <TextView android:id="@+id/textView" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="TextView"/> </LinearLayout> <LinearLayout android:layout_width="240dp" android:layout_height="match_parent" android:layout_gravity="start" android:background="#fff" android:choiceMode="singleChoice" android:divider="@android:color/transparent" android:dividerHeight="0dp" android:orientation="vertical"> <include layout="@layout/activity_main_drawer"/> </LinearLayout> </android.support.v4.widget.DrawerLayout>
activity_main_drawer.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <ImageView android:id="@+id/imageView" android:layout_width="match_parent" android:layout_height="106dp" android:scaleType="fitXY" app:srcCompat="@drawable/im_drawer_top"/> <ListView android:id="@+id/id_drawer_menu" android:layout_width="match_parent" android:layout_weight="1" android:layout_height="match_parent"/> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <TextView android:id="@+id/textView7" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:text="设置" android:textAlignment="center" android:textSize="18sp"/> <TextView android:id="@+id/textView6" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:text="夜间" android:textAlignment="center" android:textSize="18sp"/> <TextView android:id="@+id/textView5" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:text="北京" android:textAlignment="center" android:textSize="18sp"/> </LinearLayout> </LinearLayout>
activity_main_drawer_listener.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:id="@+id/id_textview" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" android:padding="10dp" android:text="TextView" android:textSize="18sp"/> </LinearLayout>
MainActivity.java
package com.example.senior0401_test; import android.support.v4.widget.DrawerLayout; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.BaseAdapter; import android.widget.ListView; import android.widget.TextView; import java.util.ArrayList; public class MainActivity extends AppCompatActivity { ArrayList<Item>listData=new ArrayList<>(); DrawerLayout drawerLayout; MyDrawerListAdapter myDrawerListAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); listData.add(new Item("了解会员特权","vip")); listData.add(new Item("QQ钱包","money")); listData.add(new Item("个性装扮","style")); listData.add(new Item("我的收藏","my")); listData.add(new Item("我的相册","image")); listData.add(new Item("我的文件","file"));
//初始化DrawerLayout drawerLayout=(DrawerLayout)findViewById(R.id.id_drawer_layout);
//拉开抽屉时 ContentView的颜色标称灰色 drawerLayout.setScrimColor(0xAACCCCCC); myDrawerListAdapter=new MyDrawerListAdapter(); ListView listView=(ListView)findViewById(R.id.id_drawer_menu); listView.setAdapter(myDrawerListAdapter);
//当点击菜单中的一项时 执行相应的功能 未写 listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { Item item= (Item) myDrawerListAdapter.getItem(i); if(item.value.equals("vip")) { Log.d("TAG","点击了会员选项"); } else if(item.value.equals("money")) { Log.d("TAG","点击了我的钱包"); } } }); } public class Item { public String label; public String value; public Item(String label,String value) { this.label=label; this.value=value; } } public class MyDrawerListAdapter extends BaseAdapter { @Override public int getCount() { return listData.size(); } @Override public Object getItem(int position) { return listData.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View corverView, ViewGroup parent) { if(corverView==null) { corverView=getLayoutInflater().inflate(R.layout.activity_main_drawer_listitem,parent,false); } Item it= (Item) getItem(position); TextView textView=(TextView)corverView.findViewById(R.id.id_textview); textView.setText(it.label); return corverView; } } }