Bottom Sheets(底部动作条)使用介绍

2023-11-08 23:30

本文主要是介绍Bottom Sheets(底部动作条)使用介绍,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Bottom Sheets是Android Support Library 23.2出现的新特性,Github在这之前就有开源的BottomSheet效果,感兴趣的可以搜索研究下。

下边是整合BottomSheets的一些知识点:

底部动作条

底部动作条(Bottom Sheets)是一个从屏幕底部边缘向上滑出的一个面板,使用这种方式向用户呈现一组功能。底部动作条呈现了简单、清晰、无需额外解释的一组操作。

使用

底部动作条(Bottom Sheets)特别适合有三个或者三个以上的操作需要提供给用户选择、并且不需要对操作有额外解释的情景。如果只有两个或者更少的操作,或者需要详加描述的,可以考虑使用菜单(Menu)或者对话框替代。

底部动作条(Bottom Sheets)可以是列表样式的也可以是宫格样式的。宫格布局可以增加视觉的清晰度。

你可以使用底部动作条(Bottom Sheets)展示和其 app 相关的操作,比如做为进入其他 app 的入口(通过 app 的 icon 进入)。

Bottom Sheet 一共有五个状态回调:

  • STATE_COLLAPSED 
    折叠状态。可通过app:behavior_peekHeight来设置默认显示的高度。

  • STATE_SETTING 
    拖拽松开之后到达终点位置(collapsed or expanded)前的状态。

  • STATE_EXPANDED 
    完全展开的状态。

  • STATE_HIDDEN 
    隐藏状态。默认是false,可通过app:behavior_hideable属性设置。

  • STATE_DRAGGING 
    被拖拽状态

BottomSheet的使用:

1、在AndroidStudio的build.gradle文件下,依赖 compile'com.android.support:design:23.2.0'

2、新建activity_main.xml布局文件;此处需要注意的是必须在CoordinatorLayout视图下添加一个View属性是 app:layout_behavior="android.support.design.widget.BottomSheetBehavior"的控件。这个控件可以是NestedScrollView,也可以是RecyclerView。

<span style="font-size:18px;"><android.support.design.widget.CoordinatorLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"android:id="@+id/main_content"android:layout_width="match_parent"android:layout_height="match_parent"android:fitsSystemWindows="true"><ScrollViewandroid:layout_width="match_parent"android:layout_height="match_parent"app:layout_behavior="@string/appbar_scrolling_view_behavior"><LinearLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"android:paddingTop="24dp"><Buttonandroid:id="@+id/button_1"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="STATE_EXPANDED"android:padding="16dp"android:layout_margin="8dp"android:textColor="@android:color/white"android:background="#ff669900"/><Buttonandroid:id="@+id/button_2"android:layout_width="match_parent"android:layout_height="wrap_content"android:padding="16dp"android:layout_margin="8dp"android:text="STATE_COLLAPSED"android:textColor="@android:color/white"android:background="#ff33b5e5"/><Buttonandroid:id="@+id/button_3"android:layout_width="match_parent"android:layout_height="wrap_content"android:padding="16dp"android:layout_margin="8dp"android:text="BottomSheetDialog"android:textColor="@android:color/white"android:background="#ffcc0000"/></LinearLayout></ScrollView><android.support.v4.widget.NestedScrollViewandroid:id="@+id/bottom_sheet"android:layout_width="match_parent"android:layout_height="350dp"android:clipToPadding="true"android:background="#ffffbb33"app:layout_behavior="android.support.design.widget.BottomSheetBehavior"><!--此处用于填充BottomSheets的自定义样式--><TextViewandroid:layout_width="match_parent"android:layout_height="match_parent"android:text="底部动作条(Bottom Sheets)特别适合有三个或者三个以上的操作需要提供给用户选择、并且不需要对操作有额外解释的情景。如果只有两个或者更少的操作,或者需要详加描述的,可以考虑使用菜单(Menu)或者对话框替代。底部动作条(Bottom Sheets)可以是列表样式的也可以是宫格样式的。宫格布局可以增加视觉的清晰度。你可以使用底部动作条(Bottom Sheets)展示和其 app 相关的操作,比如做为进入其他 app 的入口(通过 app 的 icon 进入)。"android:padding="16dp"android:textSize="16sp"/></android.support.v4.widget.NestedScrollView></android.support.design.widget.CoordinatorLayout></span>


3、然后就是MAinActivity的代码,直接粘贴过来,里边也有BottomSheets的用法:

package com.glodon.bottomsheetsdemo;import android.os.Bundle;
import android.support.design.widget.BottomSheetBehavior;
import android.support.design.widget.BottomSheetDialog;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;public class MainActivity extends AppCompatActivity implements View.OnClickListener{private BottomSheetBehavior<View> mBottomSheetBehavior;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);View bottomSheet = findViewById( R.id.bottom_sheet );Button button1 = (Button) findViewById( R.id.button_1 );Button button2 = (Button) findViewById( R.id.button_2 );Button button3 = (Button) findViewById( R.id.button_3 );button1.setOnClickListener(this);button2.setOnClickListener(this);button3.setOnClickListener(this);mBottomSheetBehavior = BottomSheetBehavior.from(bottomSheet);mBottomSheetBehavior.setPeekHeight(300);//设置内容栏默认高度mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED);mBottomSheetBehavior.setBottomSheetCallback(new BottomSheetBehavior.BottomSheetCallback() {@Overridepublic void onStateChanged(View bottomSheet, int newState) {if (newState == BottomSheetBehavior.STATE_COLLAPSED) {mBottomSheetBehavior.setPeekHeight(0);//设置内容栏默认高度为0,即用户看不到}}@Overridepublic void onSlide(View bottomSheet, float slideOffset) {}});}@Overridepublic void onClick(View v) {switch( v.getId() ) {case R.id.button_1: {mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_EXPANDED);break;}case R.id.button_2: {mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED);break;}case R.id.button_3: {final BottomSheetDialog bottomSheetDialog=new BottomSheetDialog(MainActivity.this);bottomSheetDialog.setContentView(R.layout.bottom_sheet_dialog_layout);bottomSheetDialog.findViewById(R.id.tv_dialog_cancel).setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {bottomSheetDialog.dismiss();}});bottomSheetDialog.show();break;}}}
}

效果图:



附上Demo



这篇关于Bottom Sheets(底部动作条)使用介绍的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/373061

相关文章

使用Python实现可恢复式多线程下载器

《使用Python实现可恢复式多线程下载器》在数字时代,大文件下载已成为日常操作,本文将手把手教你用Python打造专业级下载器,实现断点续传,多线程加速,速度限制等功能,感兴趣的小伙伴可以了解下... 目录一、智能续传:从崩溃边缘抢救进度二、多线程加速:榨干网络带宽三、速度控制:做网络的好邻居四、终端交互

Python中注释使用方法举例详解

《Python中注释使用方法举例详解》在Python编程语言中注释是必不可少的一部分,它有助于提高代码的可读性和维护性,:本文主要介绍Python中注释使用方法的相关资料,需要的朋友可以参考下... 目录一、前言二、什么是注释?示例:三、单行注释语法:以 China编程# 开头,后面的内容为注释内容示例:示例:四

Python中win32包的安装及常见用途介绍

《Python中win32包的安装及常见用途介绍》在Windows环境下,PythonWin32模块通常随Python安装包一起安装,:本文主要介绍Python中win32包的安装及常见用途的相关... 目录前言主要组件安装方法常见用途1. 操作Windows注册表2. 操作Windows服务3. 窗口操作

Go语言数据库编程GORM 的基本使用详解

《Go语言数据库编程GORM的基本使用详解》GORM是Go语言流行的ORM框架,封装database/sql,支持自动迁移、关联、事务等,提供CRUD、条件查询、钩子函数、日志等功能,简化数据库操作... 目录一、安装与初始化1. 安装 GORM 及数据库驱动2. 建立数据库连接二、定义模型结构体三、自动迁

ModelMapper基本使用和常见场景示例详解

《ModelMapper基本使用和常见场景示例详解》ModelMapper是Java对象映射库,支持自动映射、自定义规则、集合转换及高级配置(如匹配策略、转换器),可集成SpringBoot,减少样板... 目录1. 添加依赖2. 基本用法示例:简单对象映射3. 自定义映射规则4. 集合映射5. 高级配置匹

Spring 框架之Springfox使用详解

《Spring框架之Springfox使用详解》Springfox是Spring框架的API文档工具,集成Swagger规范,自动生成文档并支持多语言/版本,模块化设计便于扩展,但存在版本兼容性、性... 目录核心功能工作原理模块化设计使用示例注意事项优缺点优点缺点总结适用场景建议总结Springfox 是

嵌入式数据库SQLite 3配置使用讲解

《嵌入式数据库SQLite3配置使用讲解》本文强调嵌入式项目中SQLite3数据库的重要性,因其零配置、轻量级、跨平台及事务处理特性,可保障数据溯源与责任明确,详细讲解安装配置、基础语法及SQLit... 目录0、惨痛教训1、SQLite3环境配置(1)、下载安装SQLite库(2)、解压下载的文件(3)、

使用Python绘制3D堆叠条形图全解析

《使用Python绘制3D堆叠条形图全解析》在数据可视化的工具箱里,3D图表总能带来眼前一亮的效果,本文就来和大家聊聊如何使用Python实现绘制3D堆叠条形图,感兴趣的小伙伴可以了解下... 目录为什么选择 3D 堆叠条形图代码实现:从数据到 3D 世界的搭建核心代码逐行解析细节优化应用场景:3D 堆叠图

c++中的set容器介绍及操作大全

《c++中的set容器介绍及操作大全》:本文主要介绍c++中的set容器介绍及操作大全,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录​​一、核心特性​​️ ​​二、基本操作​​​​1. 初始化与赋值​​​​2. 增删查操作​​​​3. 遍历方

Springboot如何正确使用AOP问题

《Springboot如何正确使用AOP问题》:本文主要介绍Springboot如何正确使用AOP问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录​一、AOP概念二、切点表达式​execution表达式案例三、AOP通知四、springboot中使用AOP导出