代码之家  ›  专栏  ›  技术社区  ›  SBotirov

Android:自定义底页对话框

  •  6
  • SBotirov  · 技术社区  · 7 年前

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

    enter image description here

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

    enter image description here

    我将使用ViewPager滚动标题图像,使用RecyclerView显示描述和其他信息。以及垂直滚动内容时对ImageView(放置在ViewPager中)的视差效果。具有最小高度的ImageView(和ViewPager),用户无法完全折叠它(查看第二个屏幕截图,这是用户滚动到内容结束)。

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

    1 回复  |  直到 7 年前
        1
  •  1
  •   James    7 年前

    这可以通过滚动视图中的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 . 门槛是你想让它消失的地方。你需要利用这个价值来找到一个好地方。