Android:自定义底页对话框
Posted
技术标签:
【中文标题】Android:自定义底页对话框【英文标题】:Android: Custom bottom sheet dialog 【发布时间】:2019-01-02 03:17:22 【问题描述】:如何使用android标准组件底页实现以下设计功能:
-
底部工作表对话框片段出现时的图像:
-
用户向上滚动以查看内容底部时的图像:
我将使用 ViewPager 来滚动标题图像,并使用 RecyclerView 来显示描述和其他信息。以及垂直滚动内容时对 ImageView(放置在 ViewPager 中)的视差效果。具有 ImageView(和 ViewPager)的最小高度,用户不能完全折叠它(查看第二个屏幕截图,用户滚动到内容末尾)。
我想在 ImageView 达到最小高度时停止滚动(查看第二个屏幕截图),但 ImageView 下面的内容应该继续滚动
【问题讨论】:
在我的应用程序中,我只使用 BottomSheetDialog,创建自定义视图,它工作正常,当我滚动到末尾时,我可以完全折叠我的视图。 是的,它会完全滚动,但我想在 imageview 达到最小高度时停止它 【参考方案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 语句中实现在滚动视图内外移动图像。
【讨论】:
以上是关于Android:自定义底页对话框的主要内容,如果未能解决你的问题,请参考以下文章