博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
简单使用BottomSheetBehavior实现底部弹窗
阅读量:5958 次
发布时间:2019-06-19

本文共 2465 字,大约阅读时间需要 8 分钟。

这次带来的是BottomSheetBehavior的简单使用,BottomSheetBehavior是Android Support Library23.2中引入的,它可以轻松实现底部动作条功能。

img_6852dae42410c0530bba63e561e5672b.gif

使用方法

●xml布局

//按钮要使用布局包裹否则会浮在BottomSheetBehavior之上

●Activity代码

public class MainActivity extends AppCompatActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        final BottomSheetBehavior bottomSheetBehavior=BottomSheetBehavior.from(findViewById(R.id.design_bottom_sheet1));        //设置默认先隐藏        bottomSheetBehavior.setState(BottomSheetBehavior.STATE_HIDDEN);        findViewById(R.id.bt).setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {            //根据状态不同显示隐藏                if (bottomSheetBehavior.getState() == BottomSheetBehavior.STATE_HIDDEN) {                    bottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED);                } else if (bottomSheetBehavior.getState() == BottomSheetBehavior.STATE_COLLAPSED) {                    bottomSheetBehavior.setState(BottomSheetBehavior.STATE_HIDDEN);                }            }        });        //设置监听事件           bottomSheetBehavior.setBottomSheetCallback(new BottomSheetBehavior.BottomSheetCallback() {            @Override            public void onStateChanged(@NonNull View bottomSheet, int newState) {                //拖动            }            @Override            public void onSlide(@NonNull View bottomSheet, float slideOffset) {                //状态变化            }        });    }}

扩展(BottomSheetDialogFragment实现底部弹窗)

img_f81033b34d1545a7097183953d7e98cf.gif

●xml布局

●BottomSheetDialogFragment代码

public class BottomSheetDialogFragmenttest extends BottomSheetDialogFragment {    @Nullable    @Override    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {        return inflater.inflate(R.layout.test,container,false);    }}

●Activity代码

findViewById(R.id.bt).setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                BottomSheetDialogFragmenttest bottomSheetDialogFragmenttest=new BottomSheetDialogFragmenttest();               bottomSheetDialogFragmenttest.show(getSupportFragmentManager(),BottomSheetDialogFragmenttest.class.getSimpleName());            }        });

转载地址:http://csrxx.baihongyu.com/

你可能感兴趣的文章
“计算机通信理论”问题问答-绝对精彩
查看>>
初见Ajax——javascript访问DOM的三种访问方式
查看>>
SQL Server 字符串处理
查看>>
WPF Image控件 Source: Byte[] ,BitmapImage 相互转换
查看>>
Autofac 解释第一个例子 《第一篇》
查看>>
ROS学习(七)—— 理解ROS Topic
查看>>
BTARN 接收消息流以3A7为例
查看>>
C++指针理解
查看>>
大量数据并发的情况下 ,不用自增列 怎样设置主键
查看>>
windows中最重要的三个动态链接库及功能
查看>>
struts2操作json成字符串格式错误被转义及其前台访问json对象的方法
查看>>
HDU1004——Let the Balloon Rise
查看>>
vb.net 操作xml
查看>>
hbase 学习笔记二----shell
查看>>
C#:枚举
查看>>
P、NP、NPC、NP-Hard问题
查看>>
Linux 文件和目录管理之列出、删除、复制、移动及改名
查看>>
what is web farm
查看>>
C#集合--Dictionary
查看>>
[译]使用JMH进行微基准测试:不要猜,要测试!
查看>>