【问题标题】:Removing line or divider between action bar and main screen in Android在Android中删除操作栏和主屏幕之间的线或分隔线
【发布时间】:2020-07-15 00:07:13
【问题描述】:

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

【问题讨论】:

  • 我之前看到过这个问题,但我不能用这些答案删除分隔线,你能解释一下,与哪种风格的操作栏相关的分隔线。我当然解释说我不需要覆盖操作酒吧。我只是删除该行,例如您的项目中有样式 Theme.Holo.Light.NoActionBar。

标签: android android-actionbar


【解决方案1】:

只需将属性 windowContentOverlay 插入到您的主题中。这种方式太简单了。

<style name="AppTheme" parent="android:Theme.Holo.Light">
    <!-- Customize your theme here. -->
    <item name="android:windowContentOverlay">@null</item>
</style>

【讨论】:

  • 这只会删除阴影,而不是线条
【解决方案2】:

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

  1. 首先我必须说 Theme.Holo.Light 在操作栏的底部有一个阴影,如果你想没有那个阴影,你必须使用 Theme.Holo。
  2. 更改样式后,您必须自己更改其他设置,例如代码。

    <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>
    
  3. 下面的代码是我最后一次挑战,我找到了解决它的方法。

    <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>
    
  4. 下图是第一个代码,如果您注意到没有任何分隔符。

  1. 下面的图片是第二个代码。

【讨论】:

  • 感谢 android:Theme.Holo :)
【解决方案3】:

在 Kotlin 上,您可以使用 supportActionBar?.elevation = 0f 移除 ActionBar 的阴影。

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

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        // Hide ActionBar shadow
        supportActionBar?.elevation = 0f
    }

?. 运算符控制 空指针异常,如果您在此 Activity 上没有 ActionBar

注意:如果您使用AppCompat,请致电actionBar?.elevation = 0f

【讨论】:

    【解决方案4】:

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

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

    【讨论】:

      【解决方案5】:

      如果您使用 AppCompat,您需要设置 parent="Theme.AppCompat",而不是 "Theme.AppCompat.Light"(同样代表 ActionBar):)

      例如: @style/MyActionBar 真的 @style/MyActionBar 真的

      <style name="MyActionBar" parent="Base.Widget.AppCompat.ActionBar">
          <item name="android:background">@android:color/transparent</item>
          <!--For compatibility-->
          <item name="background">@android:color/transparent</item>
      </style>
      

      【讨论】:

        【解决方案6】:

        这对我有用:

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

         getSupportActionBar().setElevation(0);
        

        【讨论】:

          【解决方案7】:

          在您的styles.xml 文件中,查找您的AppTheme 样式并将以下样式添加到其中

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

          喜欢这个

          <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>
          

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

          【讨论】:

            【解决方案8】:

            如果您使用的是AppBarLayout,那么这些都无济于事。我找到了解决方案:

                    AppBarLayout appBarLayout = findViewById(R.id.app_bar_layout);
                    appBarLayout.setOutlineProvider(null);
            

            【讨论】:

              猜你喜欢
              • 2011-06-10
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2012-10-12
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多