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,这样做为了当抽屉完全显示的时候,不至于把内容布局全部遮挡。
     */
  • 相关阅读:
    (78) C# System.Text.Json
    EF 迁移数据库
    element table
    element-plus 安装
    asp.net core 跨域
    JS常用公共方法 获取弹出层合适的宽高
    一篇文章让你搞懂如何通过Nginx来解决跨域问题
    Dubbo系列讲解之服务注册【3万字长文分享】
    Dubbo系列讲解之扩展点实现原理分析【2万字分享】
    MySQL索引篇之索引存储模型
  • 原文地址:https://www.cnblogs.com/muyuge/p/6152147.html
Copyright © 2011-2022 走看看