gpt4 book ai didi

android - BottomSheetBehavior 无法在 viewpager 上折叠

转载 作者:行者123 更新时间:2023-11-30 00:36:36 30 4
gpt4 key购买 nike

我在 viewpager 中有 3 个 Fragment 的 页面。在 Fragment 中包含 BottomSheetBehaviour。我设置的默认状态是 STATE_EXPANDED

在每个页面中,我都会拖动面板使其折叠。这里的场景:

在第 1 页:将面板拖到底部(状态变为STATE_COLLAPSE)

在第 2 页:将面板拖到底部(状态变为STATE_COLLAPSE)

在第 3 页:将面板拖到底部(状态变为STATE_COLLAPSE)


The problem

当我返回到第 1 页 时,面板会自行更改为已展开 (STATE_EXPANDED)。在 page 1 中它应该仍然是 STATE_COLLAPSE

相反,如果我从第 1 页 转到第 3 页第 3 页 的面板会上升(STATE_EXPANDED) 由它自己。

所以我认为面板在每 2 页中自行出现,


我的问题是:从我上面的问题来看,如何让面板在我自己拖动之前仍然折叠(STATE_COLLAPSE)?

Here my current code :

private void initListenerDragging(){

ivButtonUpDown.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
bottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED);
}
});

bottomSheetBehavior.setBottomSheetCallback(new BottomSheetBehavior.BottomSheetCallback() {
@Override
public void onStateChanged( View bottomSheet, int newState) {

if(newState==BottomSheetBehavior.STATE_EXPANDED){
ivButtonUpDown.setImageResource(R.drawable.ic_1491218023_double_arrow_bottom);
ivButtonUpDown.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
bottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED);
}
});
}else if(newState==BottomSheetBehavior.STATE_COLLAPSED){
ivButtonUpDown.setImageResource(R.drawable.ic_1491217689_double_arrow_top);
ivButtonUpDown.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
bottomSheetBehavior.setState(BottomSheetBehavior.STATE_EXPANDED);
}
});
}
}

@Override
public void onSlide( View bottomSheet, float slideOffset) {
}
});
}

最佳答案

默认情况下,viepager 只加载当前 fragment 每一侧的一个 fragment 。为了克服这个问题,您可以通过简单地像这样手动设置要加载的 fragment 数

viewPager.setOffscreenPageLimit(2);

这里的2可以根据需要修改

关于android - BottomSheetBehavior 无法在 viewpager 上折叠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43315919/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com