Toolbar与SlidingMenu、drawerlayout:抽屉

SlidingMenu、drawerlayout区别:
SlidingMenu:挤出
drawerlayout:覆盖

ActionBar与Toolbar:
ActionBar是安卓2.0推出的,Toolbar是5.0以后推出的(替代了ActionBar)
功能:
1.supportRequestWindowFeature(Window.FEATURE_NO_TITLE);去掉标题栏;
2.Toolbar.setLogo(),设置logo图片;
3.Toolbar.setTitle().设置标题;
4.Toolbar.setSubTitle()设置子标题;
5.Toolbar.setTitleTextColor(int color);设置标题文字颜色;
6.Toolbar.setSubtitleTextColor();设置子标题文字颜色;
7.setTitleMargin(int start, int top, int end, int bottom);设置标题margin值; 8.onCreateOptionsMenu,getMenuInflater().inflate(R.menu.menu,menu)
设置菜单在给Toolbar设置为actionbar时使用;
9.Toolbar.setOnMenuItemClickListener();Toolbar绑定menu监听;
10.Toolbar.inflateMenu(R.menu.menu)在Toolbar没有替换actionbar时使用;
11.setSupportActionBar(mToolbar);设置toolbar替换actionbar;
12.getLayoutInflater().inflate(R.layout.view_tv,bar);Toolbar添加自定义view

实现步骤:
1.点击清单文件中的theme中的@style/AppTheme
在这里插入图片描述
2.将圆的的改为NoActionBar
在这里插入图片描述
3.设置Toolbar
在这里插入图片描述
drawerlayout:自带的抽屉:
主要写在xml中:
1.必须先写主菜单
2.在左右菜单中必须写: android:layout_gravity=“left或right”

<?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=".DrawerLayoutActivity">
    <android.support.v4.widget.DrawerLayout
        android:id="@+id/drawer_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        <!--第一部分:主布局-->
        <LinearLayout
            android:orientation="vertical"
            android:layout_width="match_parent"
            android:layout_height="match_parent">
            <android.support.v7.widget.Toolbar
                android:background="#8BC34A"
                android:layout_width="match_parent"
                android:layout_height="100dp">
                <ImageView
                    android:src="@mipmap/ic_launcher_round"
                    android:id="@+id/iv"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content" />
            </android.support.v7.widget.Toolbar>
            <LinearLayout
                android:background="#9C27B0"
                android:layout_width="match_parent"
                android:layout_height="match_parent"></LinearLayout>
        </LinearLayout>
        <!--第二部分:抽屉  android:layout_gravity="left"-->
        <LinearLayout
            android:layout_gravity="left"
            android:background="#2196F3"
            android:layout_width="300dp"
            android:layout_height="match_parent"
            android:orientation="vertical">
            <Button
                android:text="关闭抽屉"
                android:id="@+id/bt_close"
                android:layout_width="match_parent"
                android:layout_height="wrap_content" />
            <Button
                android:text="退出"
                android:id="@+id/bt_exit"
                android:layout_width="match_parent"
                android:layout_height="wrap_content" />
        </LinearLayout>
        <!--第三部分:抽屉-->
        <LinearLayout
            android:layout_gravity="right"
            android:background="#FFEB3B"
            android:layout_width="300dp"
            android:layout_height="match_parent">
        </LinearLayout>
    </android.support.v4.widget.DrawerLayout>

</LinearLayout>

写在Activity中:

               //关闭抽屉
                drawerLayout.closeDrawer(Gravity.LEFT);
               //打开抽屉
                drawerLayout.openDrawer(Gravity.LEFT);

SlidingMenu:
方法以及属性:
menu.setMode(SlidingMenu.LEFT_RIGHT);//设置侧滑菜单的位置,可选值LEFT , RIGHT , LEFT_RIGHT (两边都有菜单时设置)
menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_MARGIN);// 设置触摸屏幕的模式,可选值MARGIN , CONTENT
menu.setShadowWidthRes(R.dimen.shadow_width);//根据dimension资源文件的ID来设置阴影的宽度
menu.setShadowDrawable(R.drawable.shadow);//根据资源文件ID来设置滑动菜单的阴影效果
menu.setBehindOffsetRes(R.dimen.slidingmenu_offset);//SlidingMenu划出时主页面显示的剩余宽度
menu.setBehindWidth(400);//设置SlidingMenu菜单的宽度
menu.setFadeDegree(0.35f);//SlidingMenu滑动时渐入渐出效果的值
menu.setBehindScrollScale(1.0f);//设置SlidingMenu与下方视图的移动的速度比,当为1时同时移动,取值0-1
menu.setSecondaryShadowDrawable(R.drawable.shadow);//设置二级菜单的阴影效果
menu.setSecondaryMenu(R.layout.right_menu_frame);//设置右边(二级)侧滑菜单
menu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);//把滑动菜单添加进所有的Activity中,可选值SLIDING_CONTENT , SLIDING_WINDOW
menu.setMenu(R.layout.menu_layout);//设置menu的布局文件
menu.toggle();//动态判断自动关闭或开启SlidingMenu
menu.showMenu();//显示SlidingMenu
menu.showContent();//显示内容

必须设置
1.设置模式:setMode(SlidingMenu.left(左)或者right(右))
2.剩余宽度:setBehindOffset
3.设置菜单的布局:setMenu(view)
4.与Activity绑定:attachToActivity(this,SlidingMenu.SLIDING_CONTENT);

public class MainActivity extends AppCompatActivity {
    ImageView imageView;
    SlidingMenu slidingMenu;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();//加载布局
        initMeu();//加载menu
    }
    //滑动抽屉
    private void initView() {
        imageView=findViewById(R.id.iv);
        imageView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //打开抽屉:slideMenu
                slidingMenu.showMenu();//显示菜单
            }
        });
    }

    public void initMeu(){
        //TODO 1:创建SlidingMenu
        slidingMenu= new SlidingMenu(this);
        //TODO 2:设置属性
        slidingMenu.setMode(SlidingMenu.LEFT);//设置模式 从左边拉出抽屉
        slidingMenu.setBehindOffset(100);//抽屉拉出来之后剩余的宽度
        View view = LayoutInflater.from(this).inflate(R.layout.slide_menu, null);//布局
        view.findViewById(R.id.bt_close).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //关闭抽屉
                slidingMenu.showContent();//展示主布局内容
            }
        });
        view.findViewById(R.id.bt_exit).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                finish();
                System.exit(0);
            }
        });
        slidingMenu.setMenu(view);//设置菜单的布局
        //TODO 3:和指定Activy绑定
        slidingMenu.attachToActivity(this,SlidingMenu.SLIDING_CONTENT);
        //TODO  4:其他方法
        //TOUCHMODE_FULLSCREEN全屏;TOUCHMODE_MARGIN边界;TOUCHMODE_NONE不能滑动
        slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);//设置触摸方式
//        设置左侧滑动菜单的阴影宽度:slidingMenu.setShadowWidth(300);
//        设置左侧滑动菜单的阴影图片(颜色):setShadowDrawable();
//        设置滑动时的渐变程度:slidingMenu.setFadeDegree(0.5f);范围0.0f-1.0f
//        设置淡入淡出的效果:slidingMenu.setFadeEnabled(true);
        slidingMenu.setShadowWidth(300);
        slidingMenu.setShadowDrawable(R.mipmap.ic_launcher_round);
        slidingMenu.setFadeEnabled(true);
        slidingMenu.setFadeDegree(0.0f);//0.0-1.0

    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值