android - 带有 v7 支持操作栏的奇怪分隔线

标签 android android-actionbar-compat

操作栏使用的主题是 Theme.AppCompat.Light 使用 Theme.Holo 时不存在该问题。

我正在为支持 v7 操作栏使用自定义 View :

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@android:color/white" >

</LinearLayout>

我得到以下结果:

enter image description here

如何删除布局和操作栏之间的黑线/分隔线。

我曾尝试更改操作栏样式,但收效甚微。

<resources>

    <style name="Theme.Styled" parent="@style/Theme.AppCompat.Light">

        <!-- Setting values in the android namespace affects API levels 14+ -->
        <item name="android:actionBarStyle">@style/Widget.Styled.ActionBar</item>
    </style>

    <style name="Widget.Styled.ActionBar" parent="@style/Widget.AppCompat.Light.ActionBar">
        <item name="dividerVertical">@null</item>
        <item name="android:background">@null</item>
        <item name="android:paddingTop">0dp</item>
        <item name="android:paddingBottom">0dp</item>
        <item name="android:showDividers">none</item>
        <item name="android:background">@null</item>
        <item name="android:divider">@null</item>
        <item name="android:dividerHeight">0dp</item>
        <item name="android:dividerPadding">0dp</item>
    </style>

</resources>

这是我的 Activity 来源:

public class MainActivity extends ActionBarActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ActionBar actionBar = getSupportActionBar();
        actionBar.setDisplayShowTitleEnabled(false);
        actionBar.setDisplayShowHomeEnabled(false);
        actionBar.setDisplayShowCustomEnabled(true);
        actionBar.setCustomView(R.layout.actionbar);
        actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);

    }


}

这是 list :

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.actionbartest"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="17" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/Theme.Styled" >
        <activity
            android:name="com.example.actionbartest.MainActivity"
            android:label="@string/app_name"
             >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

最佳答案

您可能正在寻找 android:windowContentOverlay属性。

要删除阴影,只需在主题中将值设置为 @null,如下所示:

<style name="Theme.Styled" parent="@style/Theme.AppCompat.Light">
    <!-- Setting values in the android namespace affects API levels 14+ -->
    <item name="android:actionBarStyle">@style/Widget.Styled.ActionBar</item>

    <item name="android:windowContentOverlay">@null</item>
</style>

关于android - 带有 v7 支持操作栏的奇怪分隔线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18737419/

相关文章:

android - 如何读取android :layout_height from style resource in custom View

android-actionbar-compat - Google 什么时候会发布 ActionBarCompat?

android - 将 ShowCaseView 与 ActionBarCompat/ActionBarSherlock Android 结合使用

android - 使用 appcompat 自定义操作栏布局

android - 无法在android studio中选择 'settings activity'

android - 在没有 MediaPlayer 的情况下使用 RemoteControlClient

iphone - IOS相当于Android的Paint.breakText()

c# - 公共(public) bool 方法无法将类型 `bool' 隐式转换为 `void'

android - 扩展ActionBarActivity时类型activity的层级不一致

android - 搜索 View 图标位置更改