简而言之,我想要一个类似于Google Play的预览,您可以在其中向上滑动,顶部图像/视频预览会消失,视图的其余部分会向上移动。
我有一个视图,我希望像本例中的视频一样隐藏,操作栏可以始终保持静止,但我需要底部可拖动。
我似乎无法找出是哪种布局,或者它是如何完成的,我设法找到的所有布局都是无关的,例如ViewPager。我目前的min sdk版本是18,编译版本是21。
答案 0 :(得分:2)
以下是我在我正在使用的应用程序中使用的代码
您必须使用OnScrollChanged
中的ScrollView
功能。 ActionBar不允许您设置不透明度,因此在操作栏上设置背景可绘制,您可以根据滚动视图中的滚动量更改其不透明度。我给出了一个示例工作流程
函数集根据其位置WRT窗口为视图locationImage提供适当的alpha。
this.getScrollY()
为您提供scrollView滚动了多少
public void OnScrollChanged(int l, int t, int oldl, int oldt) {
// Code ...
locationImage.setAlpha(getAlphaForView(locationImageInitialLocation- this.getScrollY()));
}
private float getAlphaForView(int position) {
int diff = 0;
float minAlpha = 0.4f, maxAlpha = 1.f;
float alpha = minAlpha; // min alpha
if (position > screenHeight)
alpha = minAlpha;
else if (position + locationImageHeight < screenHeight)
alpha = maxAlpha;
else {
diff = screenHeight - position;
alpha += ((diff * 1f) / locationImageHeight)* (maxAlpha - minAlpha); // 1f and 0.4f are maximum and min
// alpha
// this will return a number betn 0f and 0.6f
}
// System.out.println(alpha+" "+screenHeight +" "+locationImageInitialLocation+" "+position+" "+diff);
return alpha;
}
您可以在https://github.com/ramanadv/fadingActionBar
下载示例工作示例信用:CommandSpace