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,这样做为了当抽屉完全显示的时候,不至于把内容布局全部遮挡。
     */
  • 相关阅读:
    N25_复杂链表的复制
    N24_二叉树中和为某一路径
    N23_判断是否为二叉搜索树的后序遍历序列
    N22_从上到下打印二叉树
    win7桌面小工具已停止工作解决办法
    C3P0数据库连接池使用
    js中的页面跳转
    怎么用js代码禁止浏览器的前进与后退?
    怎么在 Dos 下运行 PHP 和 MySQL 命令
    80端口被system 占用解决方法
  • 原文地址:https://www.cnblogs.com/muyuge/p/6152147.html
Copyright © 2011-2022 走看看