删除阴影下的AppBarLayout

时间:2016-11-23 09:29:00

标签: android android-layout android-theme android-appbarlayout

我无法在代码

下面使用的阴影下移除AppBarLayout

app:elevation =“0dp”

AppBarLayout和工具栏中的

但它对我不起作用。任何人都可以帮我解决这个问题。 enter image description here

3 个答案:

答案 0 :(得分:0)

您应该将工具栏

的高程设置为0
  // join the matrix while separating rows with new lines and items with spaces 
  var report = string.Join(Environment.NewLine, matrix
    .Select(row => string.Join(" ", row)));

  Console.Write(report);

答案 1 :(得分:0)

我相信这个问题指向同样的问题Android appbarlayout提升会出现在状态栏中

可能的解决方案: 你的根布局应该有android:fitsSystemWindows =" true"在所有情况下,否则您的UI将不会在状态栏后面绘制。

现在将AppBarLayout包装在另一个具有

的CoordinatorLayout中
android:fitsSystemWindows="false".

这样可以防止阴影溢出到状态栏。

将海拔0dp添加到AppBarLayout

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

答案 2 :(得分:0)

向AppBarLayout添加ID。例如android:id=“@+id/mAppBarLayout” 在您的活动中(例如MainActivity.java)类 -

创建一个新变量

private AppBarLayout mAppBarLayout;

在onCreate方法中添加以下行 -

mAppBarLayout=(AppBarLayout)findViewById(R.id.mAppBarLayout);

现在,添加以下行以删除高程 -

mAppBarLayout.setElevation(0);

/

您可以为此设置自己的活动样式:

<!-- Your main theme with ActionBar shadow. -->
<style name="MyAppTheme" parent="android:Theme.Holo.Light">
    ....
</style>

<!-- Theme without ActionBar shadow (inherits main theme) -->
<style name="MyNoActionBarShadowTheme" parent="MyAppTheme">
    <item name="windowContentOverlay">@null</item>
    <item name="android:windowContentOverlay">@null</item>
</style>

因此,在Manifest.xml中,您可以为所有活动设置不同的样式:

<!-- Activity with ActionBar shadow -->
<activity
    android:name=".ShadowActivity"
    android:theme="@style/MyAppTheme"/>

<!-- Activity without ActionBar shadow -->
<activity
    android:name=".NoShadowActivity"
    android:theme="@style/MyNoActionBarShadowTheme"/>

或者您可以在onCreate()方法中以编程方式设置正确的主题:

@Override
protected void onCreate(Bundle savedInstanceState) {
    setTheme(R.style.MyNoActionBarShadowTheme);
    super.onCreate(savedInstanceState);

    //...
}