我如何使用我的viewmodel设置底页行为?

问题描述 投票:0回答:2

如何使用viewmodel设置BottomSheetBehavior,我想执行3个任务:1)点击按钮展开2)如果在单击按钮后展开,则会折叠

所以有人可以帮助我如何在viewmodel中具有BottomSheetBehavior状态的视图模型中进行设置吗?

android bottom-sheet
2个回答
0
投票

首先findviewbyid您的视图应该是最底下的!然后实例化行为,然后进入底表行为状态!

CoordinatorLayout layout=findViewById(R.id.bottom_sheet_root_view);
        BottomSheetbehavior btmBehaviour = BottomSheetBehavior.from(layout);
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if (btmBehaviour.getState()==BottomSheetBehavior.STATE_EXPANDED){
                    btmBehaviour.setState(BottomSheetBehavior.STATE_COLLAPSED);
                }else {
                    btmBehaviour.setState(BottomSheetBehavior.STATE_EXPANDED);
                }
            }
        });

0
投票

您可以使用LiveData控制底纸状态

ViewModel

val isBottomSheetExpanded = MutableLiveData<Boolean>()

fun expand() {
    isBottomSheetExpanded.value = true
}

fun collapse() {
    isBottomSheetExpanded.value = false
}

在主持bottomSheet的Activity

val bottomSheetBehavior = findViewById(R.id.bottom_sheet_root_view)
activityViewModel.isBottomSheetExpanded.observe(this) { isExpanded ->
        if (isExpanded) {
            bottomSheetBehavior?.state = BottomSheetBehavior.STATE_EXPANDED
        } else {
            bottomSheetBehavior?.state = BottomSheetBehavior.STATE_COLLAPSED
        }
    }

Fragments

collapseButton.setOnClickListener {
    activityViewModel.collapse()
}

expandButton.setOnClickListener {
    activityViewModel.expand()
}
© www.soinside.com 2019 - 2024. All rights reserved.