gpt4 book ai didi

android - 带有工具栏的 AppBarLayout 没有阴影/高度

转载 作者:行者123 更新时间:2023-12-03 20:58:16 24 4
gpt4 key购买 nike

我正在尝试使用 AppBarLayout 将工具栏添加到我的 Activity 中,但我无法在其上获得任何高度或阴影。

我正在使用以下布局和样式;

<!-- activity -->
<androidx.coordinatorlayout.widget.CoordinatorLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true">

<com.google.android.material.appbar.AppBarLayout
android:id="@+id/appbar"
style="@style/Widget.App.AppBar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fitsSystemWindows="true">

<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?actionBarSize" />

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

<fragment
android:id="@+id/nav_host_fragment"
android:name="androidx.navigation.fragment.NavHostFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
app:defaultNavHost="true"
app:navGraph="@navigation/main_graph"
app:layout_behavior="@string/appbar_scrolling_view_behavior"/>

</androidx.coordinatorlayout.widget.CoordinatorLayout>

<!-- styles -->
<style name="App" parent="Theme.MaterialComponents.DayNight.NoActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="colorSecondary">@color/colorAccent</item>
<item name="colorSurface">@color/background</item>

<item name="toolbarStyle">@style/Widget.App.Toolbar</item>
<item name="android:statusBarColor">@color/background</item>
<item name="android:windowLightStatusBar">true</item>
<item name="android:navigationBarColor">@android:color/white</item>
<item name="android:windowLightNavigationBar" tools:targetApi="o_mr1">true</item>
</style>

<style name="App.PopupTheme" parent="ThemeOverlay.MaterialComponents.Light">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="colorSecondary">@color/colorAccent</item>
</style>

<style name="Widget.App" parent="@android:style/Widget.Material" />

<style name="Widget.App.AppBar" parent="@style/Widget.Design.AppBarLayout">
<item name="android:background">@color/white</item>
<item name="android:elevation">12dp</item>
<item name="elevation">12dp</item>
</style>

<style name="Widget.App.Toolbar" parent="Widget.MaterialComponents.Toolbar">
<item name="android:paddingEnd">8dp</item>
<item name="contentInsetStartWithNavigation">64dp</item>
<item name="popupTheme">@style/App.PopupTheme</item>
</style>

即使没有任何样式,工具栏也不会显示任何阴影。

使用上面的代码我得到

enter image description here

但它应该看起来像这样

enter image description here

我已经尝试从开源 Google IO 应用程序(第二个屏幕截图来自)复制样式,但这也不起作用。

我在用
'com.google.android.material:material:1.2.0-alpha03' (也尝试了最新的稳定版本)

提前致谢

最佳答案

您可以添加 android:clipChildren="false" 到父 View 。

<androidx.coordinatorlayout.widget.CoordinatorLayout 
android:clipChildren="false">

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

<androidx.appcompat.widget.Toolbar
app:elevation="12dp"
/>

</com.google.android.material.appbar.AppBarLayout>
此外,默认情况下,appcompat 库仅对 api28+ 的阴影应用 alpha channel 。
您可以更改此行为,在您的应用主题中添加 android:spotShadowAlpha属性(仅适用于 api28+):
<!--Alpha value of the spot shadow projected by elevated views, between 0 and 1.-->
<item name="android:spotShadowAlpha">0.x</item>

关于android - 带有工具栏的 AppBarLayout 没有阴影/高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59789939/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com