gpt4 book ai didi

android - 自定义 Android appcompat Actionbar : how to remove bottom border on v11+ devices

转载 作者:太空狗 更新时间:2023-10-29 15:31:47 25 4
gpt4 key购买 nike

我正在使用 Android appcompat 库创建自定义操作栏。一切正常。在不使用 v11 主题(值文件夹)的设备上,底部边框不会出现,因为它不应该出现。但是当 v11+ 设备使用主题时(当然在 values-v11 文件夹中)有一个底部边框。这是一个薄的 1dp 类型的边框。我为操作栏应用了自定义背景,这一切都适用于 < v11 版本,只是在 v11+ 设备上添加了一个烦人的额外底部边框 ;-]

现在我通过另一篇 SO 文章发现,用户使用 ActionBarSherlock 时,基本主题需要是 Theme.X 而不是 theme.X.Light.x 才能解决这个问题(没有解释原因)。我应用了相同的逻辑(我使用的是 android 的 appcompat,而不是 sherlock 的),它适用于删除边框,但随后出现了其他样式问题,包括单选按钮等,采用非浅色主题。所以我想将基本主题保留为“Theme.AppCompat.Light”并去掉操作栏上的底部边框。同样,它不会显示在设备

屏幕截图(Theme.AppCompat.Light/Theme.AppCompat):

我的主题(在 values 文件夹中相同,减去 android 前缀):

    <?xml version="1.0" encoding="utf-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Application theme. -->
<style name="ActionTheme" parent="@style/Theme.AppCompat.Light">
<item name="android:actionBarStyle">@style/ActionBarStyle</item>
<item name="android:windowActionBar">true</item>
</style>

<style name="ActionBarStyle" parent="@style/Widget.AppCompat.ActionBar">
<item name="android:displayOptions"></item>
<item name="android:background">@drawable/header_style</item>
<item name="android:titleTextStyle">@style/ActionBarTitleText</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_width">wrap_content</item>
<item name="android:height">70dp</item>
</style>

<style name="ActionBarTitleText" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title">
<item name="android:textColor">@color/color_dark_blue</item>
</style>
</resources>

最佳答案

借助SO的力量,我的问题终于得到了解答!在过去的两天里,我尝试了以下链接中 OP 尝试过的所有内容以及更多内容。不知何故,我没有看到这个 SO 线程(我没有使用搜索词“divider”,methinks)。

对我有用的是将无窗口覆盖属性设置为空。我看到设置窗口颜色也可能适用于某些更高版本的 android (4.2.x+),所以我决定同时设置两者。这是带有此讨厌功能(错误?)的解决方案的 SO 链接:link

我的最终值-v11/themes.xml-

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Application theme. -->
<style name="ActionTheme" parent="@style/Theme.AppCompat.Light">
<item name="android:actionBarStyle">@style/ActionBarStyle</item>
<item name="android:windowActionBar">true</item>
<item name="android:windowBackground">@android:color/white</item>
<item name="android:windowContentOverlay">@null</item>
</style>

<style name="ActionBarStyle" parent="@style/Widget.AppCompat.ActionBar">
<item name="android:displayOptions"></item>
<item name="android:background">@drawable/header_style</item>
<item name="android:titleTextStyle">@style/ActionBarTitleText</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_width">wrap_content</item>
<item name="android:height">70dp</item>
</style>

<style name="ActionBarTitleText" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title">
<item name="android:textColor">@color/color_dark_blue</item>
</style>
</resources>

关于android - 自定义 Android appcompat Actionbar : how to remove bottom border on v11+ devices,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20894928/

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