DrawerLayout的使用

来源:互联网 发布:刘洪波怎么样 知乎 编辑:程序博客网 时间:2024/05/16 11:01

1, 谷歌建议跟布局使用DrawerLayout, DrawerLayout是V4包里的控件;


2  给DrawerLayout中的控件设置一下两种属性,属性设置给谁,侧拉出来的就是谁;可以设置给图片, 按钮 ListView等等;

android:layout_gravity="left"android:choiceMode="singleChoice"
---------------------------------
布局 
<?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);    }    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);            }        });    }}
原创粉丝点击