zoukankan      html  css  js  c++  java
  • DrawerLayout案例

    布局文件:

    <?xml version="1.0" encoding="utf-8"?>
    <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/drawerlayout"
    
        tools:context="com.cmx.week7.MainActivity">
    
        <!--放主页布局-->
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="#ffff00">
    
        </LinearLayout>
    
    <!--
    android:layout_gravity="right"可以决定在做还是右
    -->
        <LinearLayout
            android:id="@+id/linearlayout2"
            android:layout_width="240dp"
            android:layout_height="match_parent"
            android:layout_gravity="right"
            android:background="#45b97c"
            android:orientation="vertical" >
    
            <ListView
                android:id="@+id/lv"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:divider="#CD853F"
                android:dividerHeight="2dp" >
            </ListView>
        </LinearLayout>
    </android.support.v4.widget.DrawerLayout>
    

    Activity.java

    package com.cmx.week7;
    
    import android.os.Bundle;
    import android.support.v4.widget.DrawerLayout;
    import android.support.v7.app.AppCompatActivity;
    import android.util.Log;
    import android.view.View;
    import android.widget.ArrayAdapter;
    import android.widget.ListView;
    
    
    public class MainActivity extends AppCompatActivity {
    
        private DrawerLayout mDrawerLayout;
        private ListView mLv;
    
        private String[] str;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            initView();
        }
    
        //初始化控件
        private void initView() {
            mDrawerLayout= (DrawerLayout) findViewById(R.id.drawerlayout);
            mDrawerLayout.setDrawerListener(new DrawerLayout.DrawerListener() {
                /**
                 * 当抽屉被滑动的时候调用此方法
                 * slideOffset 表示 滑动的幅度(0-1)
                 * drawerView 抽屉侧滑菜单栏
                 */
                @Override
                public void onDrawerSlide(View drawerView, float slideOffset) {
    
                    Log.e("drawer","===="+slideOffset+"====");
                }
                /**
                 * 当一个抽屉被完全打开的时候被调用
                 */
                @Override
                public void onDrawerOpened(View drawerView) {
    
                    Log.i("drawer", "抽屉被完全打开了!");
    
                }
                /**
                 * 当一个抽屉被完全关闭的时候被调用
                 */
                @Override
                public void onDrawerClosed(View drawerView) {
    
                    Log.i("drawer", "抽屉被完全关闭了!");
    
                }
                /**
                 * 当抽屉滑动状态改变的时候被调用
                 * 状态值是STATE_IDLE(闲置--0), STATE_DRAGGING(拖拽的--1), STATE_SETTLING(固定--2)中之一。
                 * 抽屉打开的时候,点击抽屉,drawer的状态就会变成STATE_DRAGGING,然后变成STATE_IDLE
                 */
                @Override
                public void onDrawerStateChanged(int newState) {
    
                    Log.i("drawer", "drawer的状态:" + newState);
    
                }
            });
            mLv = (ListView) findViewById(R.id.lv);
            str = new String[] { "item1", "item2", "item3"};
            ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                    android.R.layout.simple_list_item_1, str);
            mLv.setAdapter(adapter);
    
        }
    }
    /**
     * 1. 必须把DrawerLayout作为布局的跟标签。
     * 2. 然后在跟标签中添加一个包含内容的视图,就是当抽屉完全隐藏的时候显示的内容布局。
     * 3. 添加一个抽屉布局,这个布局可以按照需求自己定义。
     * 4. 抽屉布局中,需要指定android:layout_gravity属性,right.
     * 5. 抽屉布局的宽度最好不要超过360dp,这样做为了当抽屉完全显示的时候,不至于把内容布局全部遮挡。
     */
  • 相关阅读:
    hdu 1269 迷宫城堡 (并查集)
    hdu 1272 小希的迷宫 (深搜)
    hdu 1026 Ignatius and the Princess I (深搜)
    hdu 1099 Lottery
    hdu 1068 Girls and Boys (二分匹配)
    几个基础数位DP(hdu 2089,hdu 3555,uestc 1307 windy 数)
    hdu 1072 Nightmare (广搜)
    hdu 1398 Square Coins (母函数)
    hdu 1253 胜利大逃亡 (深搜)
    hdu 1115 Lifting the Stone (求重心)
  • 原文地址:https://www.cnblogs.com/muyuge/p/6152147.html
Copyright © 2011-2022 走看看