ActionBar、DrawLayout和SlidingMenu

介绍

ToolBar:标题栏
DrawerLayout:可以实现侧滑
SlideMenu:第三方依赖

ActionBar是安卓2.0,ToolBar是安卓5.0,代替ActionBar.
去掉ActionBar:清单文件中->theme
DrawerLayout:QQ音乐的抽屉,覆盖
SlidingMenu:QQ的抽屉,挤过去。

SlideMenu方法:

setMode(); 设置模式,从左边拉出
setBehindOffest() 拉出啦之后剩余的宽度
setMenu(); 填充自定义抽屉布局
setTouchModeAbove(); 滑动位置
setShadowWidth(); 左侧滑动菜单的阴影宽度
attachToActivity(); //绑定到指定Activity
showContent();//显示主页面

DrawerLayout方法

必须先写主布局
侧拉布局设置属性:
android:layout_gravity="right"

openDrawer(Gravity.LEFT);开启抽屉
closeDrawer(Gravity.RIGHT);关闭抽屉

代码

去掉自带ActionBar
在这里插入图片描述

DrawerLayout

布局文件:

<?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"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:orientation="vertical"
    android:layout_height="match_parent"
    tools:context=".DrawerLayoutActivity">

    <androidx.appcompat.widget.Toolbar
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="#4CAF50">
        <ImageView
            android:id="@+id/pic"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@mipmap/ic_launcher"/>
    </androidx.appcompat.widget.Toolbar>
    <androidx.drawerlayout.widget.DrawerLayout
        android:id="@+id/drawerlayout"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        <!--主布局  必须先写-->
        <LinearLayout
            android:id="@+id/one"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="#3F51B5"
            android:orientation="vertical">

        </LinearLayout>

        <!--左抽屉-->
        <LinearLayout
            android:layout_width="300dp"
            android:background="#FF5722"
            android:layout_height="match_parent"
            android:layout_gravity="left">
            <Button
                android:id="@+id/close"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="点击关闭"/>
            <Button
                android:id="@+id/finish"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="点击退出"/>

        </LinearLayout>

        <!--右抽屉-->
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="#9C27B0"
            android:layout_gravity="right">
            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="右侧"/>
        </LinearLayout>
    </androidx.drawerlayout.widget.DrawerLayout>

</LinearLayout>

MainActivity:

package com.example.day9;

import androidx.appcompat.app.AppCompatActivity;
import androidx.drawerlayout.widget.DrawerLayout;

import android.os.Bundle;
import android.view.Gravity;
import android.view.View;

public class DrawerLayoutActivity extends AppCompatActivity {

    DrawerLayout drawerLayout;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_drawer_layout);

        drawerLayout=findViewById(R.id.drawerlayout);

        //点击关闭抽屉
        findViewById(R.id.close).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                drawerLayout.closeDrawer(Gravity.LEFT);  //关闭抽屉
//                drawerLayout.openDrawer(Gravity.RIGHT); //开启抽屉
            }
        });
        //点击退出
        findViewById(R.id.finish).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                finish();
                System.exit(0);
            }
        });
        //点击打开抽屉
        findViewById(R.id.pic).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                drawerLayout.openDrawer(Gravity.LEFT);
            }
        });

    }
}

Slide

public class MainActivity extends AppCompatActivity {

    SlidingMenu slidingMenu;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        slidingMenu = new SlidingMenu(this);
        //设置属性
        slidingMenu.setMode(SlidingMenu.LEFT); //从左侧滑出
        slidingMenu.setBehindOffset(100); //侧滑菜单出来后,剩余宽度

        View view = LayoutInflater.from(this).inflate(R.layout.layout_left, null);
        slidingMenu.setMenu(view); //添加侧滑菜单布局

        //TOUCHMODE_FULLSCREEN - 全屏;TOUCHMODE_MARGIN - 边界 ;TOUCHMODE_NONE - 不能滑动
        slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);

        slidingMenu.setShadowWidth(300);//设置左侧滑动菜单的阴影宽度
        slidingMenu.setFadeDegree(0.5f); //滑动时的渐变程度  0.0-1.0
        slidingMenu.setFadeEnabled(true); //淡入淡出的效果
        slidingMenu.setShadowDrawable(R.mipmap.ic_launcher_round); //左侧滑动菜单的阴影图片
        slidingMenu.attachToActivity(this,SlidingMenu.SLIDING_CONTENT);  //绑定到指定Activity

        //监听抽屉按钮
        Button button = view.findViewById(R.id.close);

        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                finish();
                System.exit(0);
            }
        });


    }

    public void click(View view) {
        slidingMenu.showMenu();

    }
}

布局文件:

<?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"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <androidx.appcompat.widget.Toolbar
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="#397FFF">
        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
            <ImageView
                android:id="@+id/one"
                android:onClick="click"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@mipmap/ic_launcher"/>
            <TextView
                android:layout_toRightOf="@id/one"
                android:layout_toLeftOf="@id/two"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="消息"
                android:layout_centerInParent="true"
                android:gravity="center"
                android:textSize="20sp"
                android:textColor="#ffffff"/>
            <ImageView
                android:id="@+id/two"
                android:layout_alignParentRight="true"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@mipmap/ic_launcher"/>
        </RelativeLayout>

    </androidx.appcompat.widget.Toolbar>

</LinearLayout>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值