Cri*_*vez 69 android transparent android-actionbar android-actionbar-compat
如何使用Google Play等透明或半透明的ActionBar在滚动时淡入或淡出windowActionBarOverlay
?
请查看以下屏幕截图
Com*_*ace 31
以下是我在我正在使用的应用程序中使用的代码
你必须使用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;
}
Run Code Online (Sandbox Code Playgroud)
编辑:我在https://github.com/ramanadv/fadingActionBar上添加了一个示例工作示例,您可以查看它.
请检查这个库https://github.com/ManuelPeinado/FadingActionBar,它实现了你想要的炫酷褪色动作条效果
官方Google DeveloperDocumentation
覆盖模式中的操作栏.
启用叠加模式
要为操作栏启用叠加模式,您需要创建一个扩展现有操作栏主题的自定义主题,并将android:windowActionBarOverlay属性设置为true.
仅适用于Android 3.0及更高版本
如果您的minSdkVersion设置为11或更高,则您的自定义主题应使用Theme.Holo主题(或其后代之一)作为您的父主题.例如:
<resources>
<!-- the theme applied to the application or activity -->
<style name="CustomActionBarTheme"
parent="@android:style/Theme.Holo">
<item name="android:windowActionBarOverlay">true</item>
</style>
</resources>
Run Code Online (Sandbox Code Playgroud)
适用于Android 2.1及更高版本
如果您的应用程序使用支持库在运行低于Android 3.0的版本的设备上兼容,则您的自定义主题应使用Theme.AppCompat主题(或其后代之一)作为您的父主题.例如:
<resources>
<!-- the theme applied to the application or activity -->
<style name="CustomActionBarTheme"
parent="@android:style/Theme.AppCompat">
<item name="android:windowActionBarOverlay">true</item>
<!-- Support library compatibility -->
<item name="windowActionBarOverlay">true</item>
</style>
</resources>
Run Code Online (Sandbox Code Playgroud)
指定布局顶部边距
当操作栏处于叠加模式时,它可能会遮挡一些应保持可见的布局.要确保此类项始终保持在操作栏下方,请使用actionBarSize指定的高度在视图顶部添加边距或填充.例如:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingTop="?android:attr/actionBarSize">
...
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
45244 次 |
最近记录: |