gpt4 book ai didi

android - android中的透明操作栏

转载 作者:太空宇宙 更新时间:2023-11-03 11:39:39 26 4
gpt4 key购买 nike

我正在尝试为我的操作栏提供透明效果。我使用以下行使其以这种方式工作,但奇怪的是,在我的 Nexus 5 上,我可以看到该条即将到来,但在我的 galaxy nexus 上,我根本看不到它。

我不确定为什么会出现在 N5 上?如何解决这个问题?

代码如下:

    getWindow().requestFeature(Window.FEATURE_ACTION_BAR_OVERLAY);
getActionBar().setDisplayHomeAsUpEnabled(true);
getActionBar().setDisplayShowHomeEnabled(false);
ActionBar actionBar = getActionBar();
actionBar.setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
actionBar.setStackedBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
setContentView(R.layout.profile);

这是运行 Jelly Bean (4.3) 的 Galaxy nexus 和运行 kitkat (4.4.4) 的 Nexus 5 的屏幕截图

Galaxy Nexus:完美展示透明操作栏:

enter image description here

Nexus 5: 显示透明操作栏:(显示一条水平线)

enter image description here

更新 2:

我设法通过使用以下样式删除了 N5 上的行

  styles.xml in Values-v14 folder

<style name="AppBaseTheme" parent="android:Theme.Holo.Light.DarkActionBar"></style>
<style name="CustomActionBarTheme" parent="@android:style/Theme.Holo"></style>

then added theme to specific activity in manifext:

<activity
android:name=".Profile"
android:label="@string/profile"
android:theme="@style/CustomActionBarTheme"
android:screenOrientation="portrait" >

但是在这个 Activity 中我所有的文本、对话框格式都发生了变化。天已经黑了。即使我以编程方式更改对话框的主题,它也不会改变。我不确定哪里出了问题?有人可以帮我解决这个问题吗?

更新 1: 根据 @erakitn 的建议:我尝试了以下几处更改:

<!-- Transparent ActionBar Style -->
<style name="CustomThemeTransparent" parent="AppBaseTheme">
<item name="android:background">@android:color/transparent</item>
<item name="background">@android:color/transparent</item>
</style>

<!-- Activity Theme with transparent ActionBar -->
<style name="CustomThemeTransparentLight" parent="AppBaseTheme">
<item name="android:actionBarStyle">@style/CustomThemeTransparent</item>
<item name="actionBarStyle">@style/CustomThemeTransparent</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:backgroundDimEnabled">false</item>
<item name="android:windowActionBarOverlay">true</item>
<item name="windowActionBarOverlay">true</item>
</style>

我收到以下错误:

1. error: Error: No resource found that matches the given name: attr 'background'.
2. error: Error: No resource found that matches the given name: attr 'actionBarStyle'.
3. error: Error: No resource found that matches the given name: attr 'windowActionBarOverlay'.

最佳答案

要删除 ActionBar 阴影,请尝试添加 <item name="android:windowContentOverlay">@null</item>属性到您的 Activity 主题。下面是一个带有透明 ActionBar 的主题示例。在 res/styles.xml 中定义:

<!-- Your App Theme-->
<style name="YourAppTheme.Light" parent="@style/Theme.AppCompat.Light">
<...>
</style>

<!-- Transparent ActionBar Style -->
<style name="YourAppTheme.Light.ActionBar.Transparent" parent="@style/Widget.AppCompat.Light.ActionBar">
<item name="android:background">@android:color/transparent</item>
<item name="background">@android:color/transparent</item>
</style>

<!-- Activity Theme with transparent ActionBar -->
<style name="YourAppTheme.TransparentActionBar.Light" parent="@style/YourAppTheme.Light">
<item name="android:actionBarStyle">@style/YourAppTheme.Light.ActionBar.Transparent</item>
<item name="actionBarStyle">@style/YourAppTheme.Light.ActionBar.Transparent</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:backgroundDimEnabled">false</item>
<item name="android:windowActionBarOverlay">true</item>
<item name="windowActionBarOverlay">true</item>
</style>

并将此主题设置为您的 Activity :

<activity
android:name="your.package.name.YourActivity"
android:label="@string/app_name"
android:theme="@style/YourAppTheme.TransparentActionBar.Light" />

更新:

如果您不使用 AppCompat 或 ABS,您应该使用 HOLO 主题作为您主题的父主题。看来您使用浅色主题和深色 ActionBar。请尝试以下解决方案:

<!-- Your App Theme-->
<style name="YourAppTheme.Light" parent="@android:style/Theme.Holo.Light.DarkActionBar">
<...>
</style>

<!-- Transparent ActionBar Style -->
<style name="YourAppTheme.Light.ActionBar.Transparent" parent="@android:style/Widget.Holo.Light.ActionBar.Solid.Inverse">
<item name="android:background">@android:color/transparent</item>
</style>

<!-- Activity Theme with transparent ActionBar -->
<style name="YourAppTheme.TransparentActionBar.Light" parent="@style/YourAppTheme.Light">
<item name="android:actionBarStyle">@style/YourAppTheme.Light.ActionBar.Transparent</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:backgroundDimEnabled">false</item>
<item name="android:windowActionBarOverlay">true</item>
</style>

关于android - android中的透明操作栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25301796/

26 4 0