web-dev-qa-db-ja.com

AppCompat-v7を備えた透明なアクションバー21

Appcompat-v7 21を介してMaterial DesignでActionBarを透明にする方法はありますか?これは残念ながら機能していません。

  <item name="colorPrimary">@Android:color/transparent</item>

古いものでもありません:

  <style name="Widget.Styled.ActionBar" parent="Widget.AppCompat.Light.ActionBar">
        <item name="Android:background">@Android:color/transparent</item>
  </style>
15
ligi
<!-- Application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light">
    <item name="Android:actionBarStyle">@style/MyActionBar</item>

    <!-- Support library compatibility -->
    <item name="actionBarStyle">@style/MyActionBar</item>
</style>

<!-- ACTION BAR STYLES -->
<style name="MyActionBar" parent="@style/Widget.AppCompat.ActionBar">
    <item name="Android:background">@drawable/actionbar_background</item>
    <item name="Android:windowActionBarOverlay">true</item>

    <!-- Support library compatibility -->
    <item name="background">@drawable/actionbar_background</item>
    <item name="windowActionBarOverlay">true</item>
</style>
25
Danial Hussain

実際、それは非常に簡単でシンプルです。

  1. RelativeLayoutと本文を配置するためにToolbarを使用していることを確認してください。
  2. Toolbarを最後に置きます。
  3. ToolbarAndroid:background属性に透明色を付ける

これは動作するコードの例です:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
    xmlns:tools="http://schemas.Android.com/tools"
    xmlns:app="http://schemas.Android.com/apk/res-auto"
    Android:layout_width="match_parent"
    Android:layout_height="match_parent"
    Android:baselineAligned="false"
    Android:orientation="vertical">

    <fragment
        Android:id="@+id/fragment_editor"
        Android:name="ichsan.myapp.HelloFragment"
        Android:layout_width="match_parent"
        Android:layout_height="match_parent"
        tools:layout="@layout/fragment_editor" />

    <Android.support.v7.widget.Toolbar
        Android:id="@+id/my_toolbar"
        Android:layout_height="wrap_content"
        Android:layout_width="match_parent"
        Android:minHeight="?attr/actionBarSize"
        Android:background="#10000000"
        app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
        app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>

</RelativeLayout>

それが質問に答えることを願っています。

24
sancho21

ステップ:

1。以下のスタイルをv21\styles.xmlに入れます

<style name="TransperantToolbar" parent="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
    <item name="Android:windowActionBarOverlay">true</item>
    <item name="windowActionBarOverlay">true</item>
</style>

2。ツールバーのxmlコード

<Android.support.v7.widget.Toolbar
Android:id="@+id/toolbar"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
app:theme="@style/TransperantToolbar"/>

Output

1
Dhaval Jivani

上記のいずれも、appcompat v7 23とCoordinatorLayoutを使用して(または少なくともそれ自体では)トリックを行いませんでした。そのルートに行く場合、おそらく次のようなメインアクティビティレイアウトがあります。

<?xml version="1.0" encoding="utf-8"?>
<Android.support.design.widget.CoordinatorLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
    xmlns:app="http://schemas.Android.com/apk/res-auto"
    xmlns:tools="http://schemas.Android.com/tools"
    Android:id="@+id/main_content"
    Android:layout_width="match_parent"
    Android:layout_height="match_parent"
    tools:context="com.farmdog.farmdog.MainActivity">

    <Android.support.v4.view.ViewPager
        Android:id="@+id/container"
        Android:layout_width="match_parent"
        Android:layout_height="match_parent"
                 app:layout_anchor="@+id/appbar"
                 app:layout_anchorGravity="top"
        app:layout_behavior="@string/appbar_scrolling_view_behavior"/>

    <Android.support.design.widget.AppBarLayout
        Android:id="@+id/appbar"
        Android:layout_width="match_parent"
        Android:layout_height="wrap_content">
        <!--Android:theme="@style/AppTheme.AppBarOverlay">-->
     ...

上記の2つのレイアウトアンカー行に注目してください-それらは私のためにそれをしました。

0
kellogs