底部按钮可见性 sheet 行为更改

button visibility on bottom sheet behavior change

我在 bottomsheet 上有一个名为 share 的按钮,现在我希望该按钮仅在状态展开时可见,在任何其他状态下按钮不应该可见。这是我试过的代码。

     if (mBottomSheetBehavior.getState() == BottomSheetBehavior.STATE_EXPANDED) {share.setVisibility(View.VISIBLE);}
    if(mBottomSheetBehavior.getState()==BottomSheetBehavior.STATE_COLLAPSED){share.setVisibility(View.GONE);}
    if(mBottomSheetBehavior.getState()==BottomSheetBehavior.STATE_SETTLING){share.setVisibility(View.GONE);}
    if(mBottomSheetBehavior.getState()==BottomSheetBehavior.STATE_SETTLING){share.setVisibility(View.GONE);}

但是当我拖动 bottomsheet 展开或折叠时没有任何反应,有没有我不知道的正确方法

你可以试试这个

mBottomSheetBehavior.setBottomSheetCallback(new BottomSheetBehavior.BottomSheetCallback() {
    @Override
    public void onStateChanged(View bottomSheet, int newState) {
        if (newState == BottomSheetBehavior.STATE_EXPANDED) {
               share.setVisibility(View.VISIBLE);
        }else{
               share.setVisibility(View.GONE);
        }
    }
 
    @Override
    public void onSlide(View bottomSheet, float slideOffset) {
    }
});