在Android中删除操作栏和主屏幕之间的线条或分隔线

在Android中删除操作栏和主屏幕之间的线条或分隔线,android,android-actionbar,Android,Android Actionbar,如何删除操作栏和主屏幕之间的线条或分隔线? 如何在android中更改此分隔符的颜色? 提前谢谢。经过更多的努力,我可以找到我理想的主题 首先,我必须说Theme.Holo.Light在动作条的底部有一个阴影,若你们不想有那个阴影,你们必须使用Theme.Holo 更改样式后,必须为自己更改其他设置,如代码 <resources> <style name="AppTheme" parent="android:Theme.Holo"> <ite

如何删除操作栏和主屏幕之间的线条或分隔线? 如何在android中更改此分隔符的颜色?
提前谢谢。

经过更多的努力,我可以找到我理想的主题

  • 首先,我必须说Theme.Holo.Light在动作条的底部有一个阴影,若你们不想有那个阴影,你们必须使用Theme.Holo
  • 更改样式后,必须为自己更改其他设置,如代码

    <resources>
        <style name="AppTheme" parent="android:Theme.Holo">
            <item name="android:actionBarStyle">@style/AppTheme.ActionBar</item>
            <item name="android:background">#ff0000</item>
            <item name="android:colorBackground">#ff0000</item>
        </style>
        <style name="AppTheme.ActionBar" parent="android:Widget.ActionBar">
            <item name="android:background">#ff0000</item>
        </style>
    </resources>
    
    
    @style/AppTheme.ActionBar
    #ff0000
    #ff0000
    #ff0000
    
  • 下面的代码是我最后一次挑战,我发现如何解决它

    <resources>
        <style name="AppTheme" parent="android:Theme.Holo.Light">
            <item name="android:actionBarStyle">@style/AppTheme.ActionBar</item>
            <item name="android:background">#ff0000</item>
            <item name="android:colorBackground">#ff0000</item>
        </style>
        <style name="AppTheme.ActionBar" parent="android:Widget.ActionBar">
            <item name="android:background">#ff0000</item>
        </style>
    </resources>
    
    
    @style/AppTheme.ActionBar
    #ff0000
    #ff0000
    #ff0000
    
  • 下图是第一个代码,若你们注意到并没有任何分隔符

  • 下图是第二个代码

  • 只需将属性windowContentOverlay插入主题即可。这样太简单了

    <style name="AppTheme" parent="android:Theme.Holo.Light">
        <!-- Customize your theme here. -->
        <item name="android:windowContentOverlay">@null</item>
    </style>
    
    
    @空的
    
    如果使用AppCompat,则需要设置parent=“Theme.AppCompat”,而不是“Theme.AppCompat.Light”(同样代表ActionBar):)

    例如: @样式/MyActionBar 真的 @样式/MyActionBar 真的

    
    @android:彩色/透明
    @android:彩色/透明
    
    在styles.xml文件中,查找AppTheme样式并将以下样式添加到其中

            <item name="android:actionBarDivider">@android:color/transparent</item>
    
    @android:color/transparent
    
    像这样

    <style name="AppTheme" parent="Theme.AppCompat.Light">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
        <item name="android:fontFamily">@font/roboto</item>
        <item name="android:actionBarDivider">@android:color/transparent</item>
    </style>
    
    
    @颜色/原色
    @颜色/原色暗
    @颜色/颜色重音
    @字体/机器人
    @android:彩色/透明
    

    它实际上是将活动窗口和操作栏之间的分隔符的背景设置为透明的。

    这些解决方案都不适合我。我最终将此代码添加到我的
    main活动的
    onCreate()
    事件中:

    actionBar = getSupportActionBar();
    actionBar.setElevation(0);
    

    在Kotlin上,您可以使用
    supportActionBar?.elevation=0f
    删除操作栏的阴影

    将此代码添加到所需活动的
    onCreate()
    函数中。例如:

        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            setContentView(R.layout.activity_main)
    
            // Hide ActionBar shadow
            supportActionBar?.elevation = 0f
        }
    
    如果此活动上没有操作栏,则
    ?。
    运算符控制空指针异常


    注意:如果您没有使用AppCompat,请调用
    actionBar?.elevation=0f

    如果您使用的是
    AppBarLayout
    ,这些都没有帮助。我使用以下方法找到了解决方案:

            AppBarLayout appBarLayout = findViewById(R.id.app_bar_layout);
            appBarLayout.setOutlineProvider(null);
    
    这对我很有用:

    我刚刚在onCreate()方法中添加了以下代码行


    可能重复我以前看到的那个问题,但我不能用这些答案删除分隔符,你能解释一下,分隔符与哪种风格的动作栏有关。当然,我解释说我不需要重叠动作栏。我只是删除了这一行,比如你的项目中有style-Theme.Holo.Light.NoActionBar。感谢android:Theme.Holo:)这只删除了阴影,而不是线条
            AppBarLayout appBarLayout = findViewById(R.id.app_bar_layout);
            appBarLayout.setOutlineProvider(null);
    
     getSupportActionBar().setElevation(0);