android - 通过向上拖动按钮向上滑动底页(android)
问题描述
我想用一个按钮控制我的底部工作表的状态。
控制按钮位于底部工作表布局的顶部。
如果我向上拖动控制按钮,底部工作表将展开。
我试图搜索触发bottomsheet扩展的事件,但找不到。
所以我的问题是,bottomsheetbehavior.class 中的什么方法触发阶段变化?
解决方案
您可以使用这种方式根据按钮单击更改状态
controlBtn.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
if (bottomSheetBehavior.getState() == BottomSheetBehavior.STATE_EXPANDED){
bottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED);
}
else {
bottomSheetBehavior.setState(BottomSheetBehavior.STATE_EXPANDED);
}
});
当您的底页状态更改时触发的回调是
bottomSheetBehavior.setBottomSheetCallback(new BottomSheetBehavior.BottomSheetCallback() {
@Override
public void onStateChanged(@NonNull View bottomsht, int newstate) {
if (newState == BottomSheetBehavior.STATE_DRAGGING) {
behavior.setState(BottomSheetBehavior.STATE_COLLAPSED);
}
}
@Override
public void onSlide(@NonNull View view, float v) {
}
});
推荐阅读
- mongodb - mongoDB,猫鼬,无法连接到数据库
- typescript - 返回自身的函数的返回类型是什么?
- python - Python - 使用函数和创建数据框
- verify - 使用 NCrunch 时,Verify.NUnit 报告的差异如何被批准?
- bash - Bash 解析 ls 使用 printf 和 nul 分隔符的经验教训
- django - AssertionError:应为“日期”,但得到了“日期时间”。拒绝强制,因为这可能意味着丢失时区信息
- python - 根据 Python pandas 中的系列动态填充缺失的年份和星期值
- python - 为什么在多个 if 语句中使用 elif 和 else?
- git - 临时使用没有服务器的 git
- c# - 通过 Azure DevOps Services Rest Api 完成的拉取请求列表