2014-10-25 30 views
18

Tôi muốn biết liệu có ai biết cách thực hiện hoạt động với thanh tác vụ trong suốt, giống như trong cửa hàng Google Play mới khi bạn truy cập trang của ứng dụng hay không.Material Design Transparent ActionBar

Tôi không quan tâm đến việc cuộn và chuyển từ trong suốt sang nền màu đồng nhất, Tôi chỉ cần thanh tác vụ trong suốt.

Cảm ơn.

Trả lời

19

Bạn chỉ cần đặt <item name="colorPrimary">@android:color/transparent</item> và thiết lập windowActionBarOverlay để thực về chủ đề ứng dụng của bạn như thế này:

<resources> 

    <!-- Base application theme. --> 
    <style name="AppTheme" parent="Theme.AppCompat.Light"> 
     <item name="android:textColorPrimary">@color/my_text_color</item> 
     <item name="colorPrimary">@android:color/transparent</item> 
     <item name="windowActionBarOverlay">true</item> 
    </style> 

</resources> 

kết quả cuối cùng sẽ giống như thế này:

final result of code

+0

Tuyệt vời, Nó làm việc. Tuy nhiên, như bạn có thể xem tại đây: https://fbcdn-sphotos-fa.akamaihd.net/hphotos-ak-xpf1/v/t1.0-9/10629709_805789872797492_6827913796269231038_n.jpg?oh=ac43335ed7c387f8c6ed10edfd1faa0f&oe=54B0A62D&__gda__=1420431431_2dfb271b8cb28aee5df2b805507d7e5e Có là một chút màu đen ở phía trên ... bạn có thể cho tôi biết cách làm điều đó không? – user3184899

+0

có thể điều này có thể giúp bạn http://stackoverflow.com/questions/17801289/android-translucent-background-with-shadow –

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

này ở trên sẽ dẫn đến ngoại lệ trên các thiết bị Lollipop. colorPrimary phải mờ đục.

Stylish actionbar bạn sử dụng phong cách:

<style name="ThemeActionBar" 
     parent="Widget.AppCompat.Light.ActionBar.Solid"> 
     <item name="android:background">@null</item> 
     <!-- Support library compatibility --> 
     <item name="background">@null</item> 
</style> 

Và trong chủ đề của bạn, chỉ cần bao gồm:

<item name="android:actionBarStyle">@style/ThemeActionBar</item> 
<item name="android:windowActionBarOverlay">true</item> 
<!-- Support library compatibility --> 
<item name="actionBarStyle">@style/ThemeActionBar</item> 
<item name="windowActionBarOverlay">true</item> 
+3

Nếu bạn muốn màu (tức là mờ), thay vì '@ null' làm nền (kết quả là đầy đủ minh bạch), sử dụng màu với giá trị alpha như '# 30000000' – rpattabi

2

Ngoài ra còn có cách để làm điều đó một cách thực dụng.

getWindow().requestFeature(Window.FEATURE_ACTION_BAR_OVERLAY); 
mActionBar.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); 
mActionBar.setElevation(0); 
+0

không hoạt động đối với tôi – susemi99

+1

Nó hoạt động. Thêm getWindow(). RequestFeature (Window.FEATURE_ACTION_BAR_OVERLAY); trước super.onCreate (savedInstanceState); –

2

1) Đặt AppBarLayout đặc tính nâng cao thành 0dp.

ứng dụng: cao = "0dp"

2) Thiết lập màu nền Toolbar để minh bạch.

android: background = "@ android: màu/minh bạch"

Tổng xml sẽ giống như dưới đây:

<android.support.design.widget.AppBarLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:theme="@style/AppTheme.AppBarOverlay" 
    app:elevation="0dp"> 

    <android.support.v7.widget.Toolbar 
     android:id="@+id/toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="?attr/actionBarSize" 
     android:background="?attr/colorPrimary" 
     app:popupTheme="@style/AppTheme.PopupOverlay"> 

     ...... 

    </android.support.v7.widget.Toolbar> 
</android.support.design.widget.AppBarLayout> 

enter image description here

+1

Điều này không hoạt động –

6

Transparent Actionbar

giá trị/styles.xml:

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

<style name="AppTheme.ActionBar.Transparent" parent="AppTheme"> 
    <item name="android:windowContentOverlay">@null</item> 
    <item name="windowActionBarOverlay">true</item> 
    <item name="colorPrimary">@android:color/transparent</item> 
</style> 

<style name="AppTheme.ActionBar" parent="AppTheme"> 
    <item name="windowActionBarOverlay">false</item> 
    <item name="colorPrimary">@color/default_yellow</item> 
</style> 

giá trị-v21/styles.xml:

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

<style name="AppTheme.ActionBar.Transparent" parent="AppTheme"> 
    <item name="colorPrimary">@android:color/transparent</item> 
</style> 

<style name="AppTheme.ActionBar" parent="AppTheme"> 
    <item name="colorPrimaryDark">@color/bg_colorPrimaryDark</item> 
    <item name="colorPrimary">@color/default_yellow</item> 
</style> 

sử dụng các chủ đề này trong AndroidManifest của bạn.xml để xác định các hoạt động này sẽ có một trong suốt hoặc màu ActionBar

<activity 
      android:name=".MyTransparentActionbarActivity" 
      android:theme="@style/AppTheme.ActionBar.Transparent"/> 

    <activity 
      android:name=".MyColoredActionbarActivity" 
      android:theme="@style/AppTheme.ActionBar"/> 
+0

Rất tốt, cảm ơn. :) – Denees

+0

Tuyệt vời, tôi hy vọng câu trả lời của bạn sẽ được chấp nhận – newbie

Các vấn đề liên quan