【问题标题】:Can't remove the shadow below app bar无法移除应用栏下方的阴影
【发布时间】:2016-03-12 02:43:58
【问题描述】:

无法移除应用栏下方的阴影。有一些小窍门,但没有一个能解决。

编辑应用栏样式标高:

<style name="AppTheme.AppBarOverlay" parent="Base.Widget.AppCompat.Light.ActionBar.Solid">
    <!-- Support library compatibility -->
    <item name="elevation">0dp</item>
</style>

设置应用主题:

<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>

    <item name="android:windowContentOverlay">@null</item>
</style>

以编程方式设置海拔:

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

    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    toolbar.getBackground().setAlpha(0);
    toolbar.setElevation(0);
    toolbar.setTitle("");
    setSupportActionBar(toolbar);
    getSupportActionBar().setElevation(0);
    getSupportActionBar().setTitle("");

    ViewPager viewPager = (ViewPager) findViewById(R.id.viewPager);
    viewPager.setAdapter(new AdapterMods(this));

    NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
    navigationView.setNavigationItemSelectedListener(this);
}

结果是:

【问题讨论】:

    标签: android appbar android-appbarlayout


    【解决方案1】:

    我解决了取出 widget.AppBarLayout 并仅使用 widget.Toolbar 并使用 Toolbar 上的高程放置在视图上的问题。

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    
        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            <!-- Complete circle of touch response -->
            android:layout_height="70dp"
            android:background="@android:color/transparent"
            android:elevation="1dp"
            android:theme="@style/MainAppTheme.AppBarOverlay"/>
    
    </RelativeLayout>
    

    【讨论】:

      【解决方案2】:

      要删除阴影,请将此应用于您的应用主题:

      <style name="MyAppTheme" parent="android:Theme.Holo.Light">
      <item name="android:windowContentOverlay">@null</item>
      </style>
      

      如果您正在使用支持库,则必须像这样调用它:

      getSupportActionBar().setElevation(0);
      

      【讨论】:

      • Theme.Holo 编译失败。使用其他点还不行。我尝试在 android studio 上打开一个新的基础项目并应用此更改。我的最小构建目标是 21。
      • java.lang.RuntimeException: Failed to resolve attribute at index 6 - 在 - setContentView(R.layout.activity_main);
      猜你喜欢
      • 1970-01-01
      • 2012-08-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-22
      • 1970-01-01
      相关资源
      最近更新 更多