gpt4 book ai didi

android - 半透明状态栏和工具栏

转载 作者:IT老高 更新时间:2023-10-28 23:23:13 31 4
gpt4 key购买 nike

我想集成这样的东西:

enter image description here

我已经这样做了,但我似乎无法将 imageview 放在工具栏下方。没有工具栏,我可以让它在状态栏下,但是这两者结合起来是不可能的。

enter image description here

这是我的布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:fitsSystemWindows="true"
tools:context="com.project.android.PhotoActivity">

<android.support.v7.widget.Toolbar
android:id="@+id/photo_tl"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="#59000000"
tools:ignore="UnusedAttribute" />

<ImageView
android:id="@+id/photo_image"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:adjustViewBounds="true"
android:scaleType="fitStart" />


</LinearLayout>

在我的 Activity 中,我做了以下事情:

  getWindow().getDecorView().setSystemUiVisibility(
View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);

我还声明了一个 styles-v21.xml 文件:

<style name="Project.Photo" parent="Project.Light">
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
<item name="android:statusBarColor">#59000000</item>
</style>

并将其设置为 PhotoActivity 的默认样式。我已经尝试将工具栏放在 FrameLayout 中,但这样做我的工具栏只是隐藏起来,如下所示:

enter image description here

提前致谢。

已修复,但工具栏与状态栏重叠。无论如何要修复填充?如果我使用 android:fitsSystemWindows="true",状态栏不再是半透明的。

最佳答案

我会从您的布局中删除 Toolbar 并使用 AppCompat.Theme 中的 ActionBar 实现:

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>

然后,我将为半透明的 ActionBar 创建一个新样式(在 values/styles.xml 中:

<style name="AppTheme.Transparent" parent="AppTheme">
<item name="windowActionBarOverlay">true</item>
</style>

v21/styles.xml中:

<style name="AppTheme.Transparent" parent="AppTheme">
<item name="windowActionBarOverlay">true</item>
<item name="android:windowTranslucentStatus">true</item>
</style>

我假设你的 Activity 扩展了 AppCompatActivity 所以在 onCreate() 你可以调用:

启用后退按钮:

getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeButtonEnabled(true);

用于设置半透明颜色:

getSupportActionBar().setBackgroundDrawable(new ColorDrawable(ContextCompat.getColor(this, R.color.yourTranslucentColor)));

用于删除您的 ActionBar 标题:

getSupportActionBar().setDisplayShowTitleEnabled(false);

更重要的是,我会将您的根 LinearLayout 更改为 CoordinatorLayout,因为它可以让您更好地控制您的布局(它是一个更强大的 FrameLayout)。

我使用的颜色是:

<color name="yourTranslucentColor">#29000000</color>

当然你应该记得在AndroidManifest.xml中把这个主题应用到你的Activity:

<activity
android:name=".ui.activity.YourActivity"
android:theme="@style/AppTheme.Transparent">
</activity>

通过执行所有这些步骤,您应该得到如下结果:

enter image description here

如果它适合你,请告诉我。

关于android - 半透明状态栏和工具栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41622957/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com