2016-06-12 142 views
5

我想disable the shadow below a transparent AppBarLayout/Toolbar.這裏的佈局:AppBarLayout海拔隱藏工具欄

<android.support.design.widget.CoordinatorLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:background="#000"> 

    <android.support.design.widget.AppBarLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:fitsSystemWindows="true" 
     android:background="@android:color/transparent" 
     android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> 

     <android.support.v7.widget.Toolbar 
      android:id="@+id/imagePreviewToolbar" 
      android:layout_width="match_parent" 
      android:layout_height="?attr/actionBarSize" /> 

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

    <include layout="@layout/content_image_preview" /> 
</android.support.design.widget.CoordinatorLayout> 

我已經與

app:elevation="0dp" 

getSupportActionBar().setElevation(0); 

嘗試,但使the UP arrow invisible。我也嘗試刪除AppBarLayout並只使用工具欄,但問題仍然存在。

任何人都有解決方案嗎?


編輯:

更換AppBarLayout +工具欄的組合與此代碼:

<android.support.v7.widget.Toolbar 
    android:id="@+id/imagePreviewToolbar" 
    android:layout_width="match_parent" 
    android:layout_height="?attr/actionBarSize" 
    android:background="@android:color/transparent" 
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" 
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light" 
    app:elevation="0dp"/> 

部分固定的問題。現在,只有當設備處於橫向模式時,工具欄纔會變得不可見! Android Studio佈局編輯器向我展示了兩種方向上的工具欄都很好,所以我不知道問題會出在哪裏。

+0

你好,你嘗試過app:elevation =「0dp」的工具欄。嘗試用xml而不是編程。 @xmattjus 試試這個鏈接http://stackoverflow.com/a/31492804/2736849 –

+0

@MFaisalHyder感謝您的鏈接,部分解決了問題..現在工具欄變得只有在橫向模式下才可見。這發生了有或沒有海拔屬性集。 – xmattjus

+0

不替換佈局,這次使用AppBarLayout中的ToolBar嘗試應用程序:ele ...屬性到應用程序欄佈局而不是工具欄讓我知道。還有一件事嘗試在不同的設備/模擬器上 –

回答

11

經過一番嘗試,我確實發現ToolBar應該是這種情況下的最後一個視圖如果它將是第一個,那麼它將會重疊它的視圖,因爲它的高度設置爲match_parent,所以在佈局中嘗試這種方式。

佈局

<?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" 
android:layout_width="match_parent" 
android:layout_height="match_parent" > 

<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_below="@+id/imagePreviewToolbar" > 

    <ImageView 
     android:id="@+id/image_preview" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:background="@drawable/galacticos" 
     android:contentDescription="abc" 
     android:scaleType="fitCenter" /> 

    <LinearLayout 
     android:id="@+id/actionBtns" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:orientation="horizontal" 
     android:padding="16dp" > 

     <ImageButton 
      android:id="@+id/setBackgroundBtn" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:background="@null" 
      android:contentDescription="abc" 
      android:src="@drawable/ic_launcher" /> 

     <ImageButton 
      android:id="@+id/downloadBtn" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:background="?selectableItemBackgroundBorderless" 
      android:clickable="true" 
      android:contentDescription="abc" 
      android:src="@drawable/ic_launcher" /> 
    </LinearLayout> 
</RelativeLayout> 

<android.support.v7.widget.Toolbar 
    android:id="@+id/imagePreviewToolbar" 
    android:layout_width="match_parent" 
    android:layout_height="?attr/actionBarSize" 
    android:fitsSystemWindows="true" 
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light" 
    app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" /> 

而且不要忘了初始化這一切,您的標題設置爲false,只顯示工具欄後退按鈕:

活動代碼

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.test); 

    Toolbar mToolBar = (Toolbar) findViewById(R.id.imagePreviewToolbar); 
    setSupportActionBar(mToolBar); 
    getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
    getSupportActionBar().setDisplayShowTitleEnabled(false); 
    getSupportActionBar().setHomeButtonEnabled(true); 

} 

照片管理 enter image description here

希望我幫你。

+0

再次感謝!稍後檢查橫向模式下的工具欄行爲。 – xmattjus

+0

這對我來說也是如此。我不必將AppBarLayout + Toolbar結合起來,但是我只是將它們移動到了CoordinatorLayout的最後一個位置。也在風景和肖像工作。 – brianclements

+0

如何在動態片段的FrameLayout中,我把我的工具欄? – fanjavaid

1

製作工具欄是這樣的:

<android.support.design.widget.AppBarLayout 
       android:id="@+id/myAppBar" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       app:elevation="0dp"...> 
    </android.support.design.widget.AppBarLayout> 

而在這之後你的活動;

findViewById(R.id.myAppBar).bringToFront();