2016-02-19 144 views
1

我遵循所有關於如何實現這一目標的技巧,迄今爲止沒有成功......我想要一個半透明/透明(不知道區別)狀態欄。NavigationView和半透明狀態欄

UPDATE 25/03/16:我嘗試了各種主題屬性而沒有進展。更新了我對v21樣式文件和賞金的企圖。

有沒有人有想法?

<android.support.v4.widget.DrawerLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
android:id="@+id/drawer" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:fitsSystemWindows="true"> 
        ... 
     <android.support.design.widget.NavigationView 
     android:fitsSystemWindows="true" 
     android:id="@+id/nvView" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:layout_gravity="start" 
     android:background="@color/tealfifty" 
     app:itemBackground="@drawable/drawer_item" 
     app:itemTextColor="@color/drawer_item" 
     app:itemIconTint="@color/drawer_item" 
     app:headerLayout="@layout/drawer_header" 
     app:menu="@menu/navigation_view_items" /> 
</android.support.v4.widget.DrawerLayout> 

這是我的應用程序的主題:

fitSystemWindows在XML設定在我DrawerLayoutNavigationView

<style name="AppTheme.Base" parent="Theme.AppCompat.Light.NoActionBar"> 
    <item name="colorPrimary">@color/teal</item> 
    <item name="colorPrimaryDark">@color/tealDark</item> 
    <item name="colorAccent">@color/purple700</item> 
    <item name="android:windowNoTitle">true</item> 
    <item name="android:windowActionBar">false</item> 
    <item name="android:navigationBarColor" tools:targetApi="21">@color/teal</item> 
    <item name="colorControlNormal">@color/iron</item> 
    <item name="colorControlActivated">@color/white</item> 
    <item name="colorControlHighlight">@color/white</item> 
    <item name="android:textColorHint">@color/iron</item> 
</style> 

和我v21\styles

<style name="MyTheme" parent="AppTheme.Base"> 
    <item name="windowActionBar">false</item> 
    <item name="windowNoTitle">true</item> 
    <item name="android:windowDrawsSystemBarBackgrounds">true</item> 
    <item name="android:windowTranslucentStatus">true</item> 
    <item name="android:windowSharedElementsUseOverlay">false</item> 
    <item name="android:statusBarColor">@android:color/transparent</item> 
</style> 

我也試過包括荷蘭國際集團那些在V21的風格:

<item name="android:windowContentTransitions">true</item> 
    <item name="android:windowAllowEnterTransitionOverlap">true</item> 
    <item name="android:windowAllowReturnTransitionOverlap">true</item> 
    <item name="android:windowSharedElementEnterTransition">@android:transition/move</item> 
    <item name="android:windowSharedElementExitTransition">@android:transition/move</item> 

當前的結果: Screenshot

+0

你現在有什麼? (屏幕截圖) –

+0

我添加了屏幕截圖 – iBobb

回答

7

看看這個:

enter image description here

所以這些文件是:

值:

<resources> 

    <!-- Base application theme. --> 
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 
     <!-- Customize your theme here. --> 
     <item name="colorPrimary">@color/colorPrimary</item> 
     <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
     <item name="colorAccent">@color/colorAccent</item> 
    </style> 
    <style name="AppTheme.NoActionBar"> 
     <item name="windowActionBar">false</item> 
     <item name="windowNoTitle">true</item> 
    </style> 
    <style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" /> 
    <style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" /> 

</resources> 

值-V21

<resources> 
    <style name="AppTheme.NoActionBar"> 
     <item name="windowActionBar">false</item> 
     <item name="windowNoTitle">true</item> 
     <item name="android:windowDrawsSystemBarBackgrounds">true</item> 
     <item name="android:statusBarColor">@android:color/transparent</item> 
    </style> 
</resources> 

MainActivity佈局:

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v4.widget.DrawerLayout 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/drawer_layout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fitsSystemWindows="true" 
    tools:openDrawer="start"> 

    <android.support.design.widget.CoordinatorLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:fitsSystemWindows="true"> 

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

      <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.design.widget.AppBarLayout> 

     <RelativeLayout 

      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:paddingBottom="@dimen/activity_vertical_margin" 
      android:paddingLeft="@dimen/activity_horizontal_margin" 
      android:paddingRight="@dimen/activity_horizontal_margin" 
      android:paddingTop="@dimen/activity_vertical_margin" 
      app:layout_behavior="@string/appbar_scrolling_view_behavior"> 

      <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="Hello World!" /> 
     </RelativeLayout> 

     <android.support.design.widget.FloatingActionButton 
      android:id="@+id/fab" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="bottom|end" 
      android:layout_margin="@dimen/fab_margin" 
      android:src="@android:drawable/ic_dialog_email" /> 

    </android.support.design.widget.CoordinatorLayout> 

    <android.support.design.widget.NavigationView 
     android:id="@+id/nav_view" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:layout_gravity="start" 
     android:fitsSystemWindows="true" 
     app:headerLayout="@layout/nav_header_main" 
     app:menu="@menu/activity_main_drawer" /> 

</android.support.v4.widget.DrawerLayout> 

和結果:

nav_header:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="@dimen/nav_header_height" 
    android:background="@drawable/side_nav_bar" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    android:theme="@style/ThemeOverlay.AppCompat.Dark" 
    android:orientation="vertical" 
    android:gravity="bottom"> 

    <ImageView android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:paddingTop="@dimen/nav_header_vertical_spacing" 
     android:src="@android:drawable/sym_def_app_icon" 
     android:id="@+id/imageView" /> 

    <TextView 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:paddingTop="@dimen/nav_header_vertical_spacing" 
     android:text="Hello Again" 
     android:textAppearance="@style/TextAppearance.AppCompat.Body1" /> 

    <TextView android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="[email protected]" 
     android:id="@+id/textView" /> 

</LinearLayout> 
+0

我在我的文件中大部分都是這樣,無論我編輯的內容是什麼,仍然沒有改變。我相信我已經正確地設置了一切,但是我曾經看到過有一些代碼會將顏色置於工具欄上,即使它設置爲透明。所以不是檢查我是否在佈局中做了所有事情,也許有人可以建議我做了什麼之後,通過添加顏色來破壞它......我不知道它變得沒有希望 – iBobb

+1

由於某些原因,windowActionBar和windowNoTitle屬性不是當他們是主題的一部分時工作。我把它們放在一個單獨的樣式.NoActionBar中,並且更改了清單,以便活動使用它,然後它就起作用了!我已經檢查過這個模板,但我想我沒有去嘗試一切,因爲它看起來不合邏輯。謝謝! – iBobb

相關問題