Android:自定义底页对话框

时间:2018-07-25 10:26:44

标签: dialog fragment parallax bottom-sheet android-nestedscrollview

如何使用android标准组件底部表格实现以下设计功能:

  1. 底部对话框对话框片段出现时的图像:

enter image description here

  1. 用户向上滚动以查看内容底部时的图像:

enter image description here

我将使用ViewPager滚动标题图像,并使用RecyclerView来显示描述和其他信息。垂直滚动内容时,对ImageView的视差效果(位于ViewPager中)。具有ImageView(和ViewPager)的最小高度,用户无法完全折叠它(请看第二张屏幕截图,用户一直滚动到内容结尾)。

我想在滚动到最小高度时停止滚动ImageView(查看第二个屏幕截图),但是ImageView下面的内容应继续滚动

1 个答案:

答案 0 :(得分:1)

这可以通过滚动视图中的if语句来完成,如下所示:

ScrollView scrollView = findViewById(R.id.scrollView); //Adjust for your code
ImageView imageView = findViewById(R.id.imageView); //Adjust for your code
boolean imageIsHidden = false;
int threshold = 250;
scrollView.getViewTreeObserver().addOnScrollChangedListener(new OnScrollChangedListener() {
    @Override
    public void onScrollChanged() {
        int scrollY = rootScrollView.getScrollY();
        if(scrollY >= threshold){
            imageIsHidden = true;
            //Move image outside of scroll view so it doesn't scroll
        }
        else if(scrollY < threshold && imageIsHidden){
            imageIsHidden = false;
            //Move image inside of scroll view so it does scroll
        }
    }
});    

这是一个名为imageIsHidden的布尔值和一个名为threshold的整数。阈值是您希望它消失的地方。您将需要使用此值来找到最佳位置。

您还需要在if和if else语句中实现在滚动视图的内部和外部移动图像。