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实现矢量路径的压缩、解压与可视化》在图形设计和Web开发中,矢量路径数据的高效存储与传输至关重要,本文将通过一个Python示例,展示如何将复杂的矢量路径命令序列压缩为JSON格式,... 目录引言核心功能概述1. 路径命令解析2. 路径数据压缩3. 路径数据解压4. 可视化代码实现详解1

Pandas透视表(Pivot Table)的具体使用

《Pandas透视表(PivotTable)的具体使用》透视表用于在数据分析和处理过程中进行数据重塑和汇总,本文就来介绍一下Pandas透视表(PivotTable)的具体使用,感兴趣的可以了解一下... 目录前言什么是透视表?使用步骤1. 引入必要的库2. 读取数据3. 创建透视表4. 查看透视表总结前言

Python 交互式可视化的利器Bokeh的使用

《Python交互式可视化的利器Bokeh的使用》Bokeh是一个专注于Web端交互式数据可视化的Python库,本文主要介绍了Python交互式可视化的利器Bokeh的使用,具有一定的参考价值,感... 目录1. Bokeh 简介1.1 为什么选择 Bokeh1.2 安装与环境配置2. Bokeh 基础2

Android使用ImageView.ScaleType实现图片的缩放与裁剪功能

《Android使用ImageView.ScaleType实现图片的缩放与裁剪功能》ImageView是最常用的控件之一,它用于展示各种类型的图片,为了能够根据需求调整图片的显示效果,Android提... 目录什么是 ImageView.ScaleType?FIT_XYFIT_STARTFIT_CENTE

Java学习手册之Filter和Listener使用方法

《Java学习手册之Filter和Listener使用方法》:本文主要介绍Java学习手册之Filter和Listener使用方法的相关资料,Filter是一种拦截器,可以在请求到达Servl... 目录一、Filter(过滤器)1. Filter 的工作原理2. Filter 的配置与使用二、Listen

Pandas使用AdaBoost进行分类的实现

《Pandas使用AdaBoost进行分类的实现》Pandas和AdaBoost分类算法,可以高效地进行数据预处理和分类任务,本文主要介绍了Pandas使用AdaBoost进行分类的实现,具有一定的参... 目录什么是 AdaBoost?使用 AdaBoost 的步骤安装必要的库步骤一:数据准备步骤二:模型

使用Pandas进行均值填充的实现

《使用Pandas进行均值填充的实现》缺失数据(NaN值)是一个常见的问题,我们可以通过多种方法来处理缺失数据,其中一种常用的方法是均值填充,本文主要介绍了使用Pandas进行均值填充的实现,感兴趣的... 目录什么是均值填充?为什么选择均值填充?均值填充的步骤实际代码示例总结在数据分析和处理过程中,缺失数

如何使用 Python 读取 Excel 数据

《如何使用Python读取Excel数据》:本文主要介绍使用Python读取Excel数据的详细教程,通过pandas和openpyxl,你可以轻松读取Excel文件,并进行各种数据处理操... 目录使用 python 读取 Excel 数据的详细教程1. 安装必要的依赖2. 读取 Excel 文件3. 读

解决Maven项目idea找不到本地仓库jar包问题以及使用mvn install:install-file

《解决Maven项目idea找不到本地仓库jar包问题以及使用mvninstall:install-file》:本文主要介绍解决Maven项目idea找不到本地仓库jar包问题以及使用mvnin... 目录Maven项目idea找不到本地仓库jar包以及使用mvn install:install-file基

Python使用getopt处理命令行参数示例解析(最佳实践)

《Python使用getopt处理命令行参数示例解析(最佳实践)》getopt模块是Python标准库中一个简单但强大的命令行参数处理工具,它特别适合那些需要快速实现基本命令行参数解析的场景,或者需要... 目录为什么需要处理命令行参数?getopt模块基础实际应用示例与其他参数处理方式的比较常见问http