簡體   English   中英

將操作欄設置為透明的android

[英]set action bar as transparent android

我發現有幾個人問過這個問題,但似乎沒有一個真正的答案..

嘗試將android中的動作和狀態欄設置為透明,但最終在動作欄和下面的漸變背景之間出現了這個奇怪的邊框,盡管它們顯然是相同的顏色:

在此處輸入圖像描述

這就是我到目前為止所擁有的:

class MainActivity : AppCompatActivity() {

private lateinit var binding: ActivityMainBinding

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    binding = ActivityMainBinding.inflate(layoutInflater)
    setContentView(binding.root)

    // set action bar colour
    val actionBar = supportActionBar

    // also tried this:
    // actionBar?.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))

    actionBar?.setBackgroundDrawable(ColorDrawable(Color.parseColor("#00FFFFFF")))
    actionBar?.title = ""

    // set status and nav bar to dark/ light
    backGroundColour()
    navBarColour()
}

private fun backGroundColour() {
    window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS)
    window.statusBarColor = ContextCompat.getColor(this, android.R.color.transparent)
    window.setBackgroundDrawableResource(R.drawable.gradient_background)
}

試:

window.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION, WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION)

只是將下一個視圖向上移動,這意味着“下一個警報”位於操作欄齒輪等的左側,這是我不想要的。

main_menu.xml:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
    android:id="@+id/action_settings"
    android:icon="@drawable/ic_settings_foreground"
    android:title="Settings"
    app:showAsAction="ifRoom" />

</menu>

主題:

<resources xmlns:tools="http://schemas.android.com/tools">
<!-- Base application theme. -->
<style name="Theme.AlarmClockProject" parent="Theme.MaterialComponents.Light.NoActionBar">
    <!-- Primary brand color. -->
    <item name="colorPrimary">@color/white</item>
    <item name="colorPrimaryVariant">@color/teal_700</item>
    <item name="colorOnPrimary">@color/white</item>
    <!-- Secondary brand color. -->
    <item name="colorSecondary">@color/white</item>
    <item name="colorSecondaryVariant">@color/teal_700</item>
    <item name="colorOnSecondary">@color/white</item>
    <!-- Status bar color. -->
    <item name="android:windowLightStatusBar" >true</item>
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
</style>
</resources>

將海拔(工具欄:海拔=“0dp”)設置為您的布局文件。請參考下面的代碼片段:

  <com.google.android.material.appbar.AppBarLayout
        android:id="@+id/appBar"
        android:layout_width="0dp"
        toolbar:elevation="0dp"
        android:layout_height="wrap_content"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent">

        <androidx.appcompat.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="?attr/colorPrimary"
            android:minHeight="?attr/actionBarSize"
            android:theme="?attr/actionBarTheme"
            tools:layout_editor_absoluteX="0dp"
            tools:layout_editor_absoluteY="0dp" />

    </com.google.android.material.appbar.AppBarLayout>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM