布局名称或方式如何?

时间:2015-03-18 12:43:01

标签: android android-5.0-lollipop android-4.4-kitkat

简而言之,我想要一个类似于Google Play的预览,您可以在其中向上滑动,顶部图像/视频预览会消失,视图的其余部分会向上移动。

Preview

我有一个视图,我希望像本例中的视频一样隐藏,操作栏可以始终保持静止,但我需要底部可拖动。

我似乎无法找出是哪种布局,或者它是如何完成的,我设法找到的所有布局都是无关的,例如ViewPager。我目前的min sdk版本是18,编译版本是21。

1 个答案:

答案 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