【问题标题】:Android - Remove shadow between Toolbar and TabLayoutAndroid - 删除 Toolbar 和 TabLayout 之间的阴影
【发布时间】:2016-09-24 08:18:19
【问题描述】:

我正在尝试使用CollapsingToolbarLayout 进行布局。但我没有得到一件事。我想移除 Toolbar 和 TabLayout 之间的阴影。我已经尝试了几种方法,但我没有设法消除阴影。有谁能够帮我?谢谢

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/white"
android:fitsSystemWindows="true">

<android.support.design.widget.CoordinatorLayout
    android:id="@+id/main_content"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_above="@+id/adview"
    android:fitsSystemWindows="true">

    <android.support.v4.view.ViewPager
        android:id="@+id/container"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginTop="50dp"
        app:layout_behavior="@string/appbar_scrolling_view_behavior" />

    <android.support.design.widget.TabLayout
        android:id="@+id/tabs"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:layout_gravity="bottom"
        android:background="?attr/colorPrimary"
        android:translationZ="2dp"
        app:layout_anchor="@+id/appbar"
        app:layout_anchorGravity="bottom"
        app:tabGravity="fill"
        app:tabIndicatorColor="@android:color/white"
        app:tabIndicatorHeight="3dp"
        app:tabMode="fixed"
        app:tabTextColor="@color/tabs_text_selector" />

    <android.support.design.widget.AppBarLayout
        android:id="@+id/appbar"
        android:layout_width="match_parent"
        android:layout_height="200dp"
        android:fitsSystemWindows="true"
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

        <net.opacapp.multilinecollapsingtoolbar.CollapsingToolbarLayout
            android:id="@+id/collapsing_toolbar"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:fitsSystemWindows="true"
            app:contentScrim="?attr/colorPrimary"
            app:expandedTitleMarginEnd="20dp"
            app:expandedTitleMarginStart="20dp"
            app:expandedTitleTextAppearance="@style/detalle_txt_expanded"
            app:layout_scrollFlags="scroll|exitUntilCollapsed">

            <ImageView
                android:id="@+id/detalle_img"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:fitsSystemWindows="true"
                android:scaleType="centerCrop"
                android:src="@drawable/img_thumb_m"
                android:transitionName="@string/transition"
                app:layout_collapseMode="parallax"
                tools:targetApi="lollipop" />

            <ImageView
                android:id="@+id/detalle_img_tipo"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_margin="15dp"
                android:layout_gravity="center_horizontal"
                android:src="@drawable/img_edificio"/>

            <android.support.v7.widget.Toolbar
                android:id="@+id/toolbar"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                android:minHeight="?attr/actionBarSize"
                app:layout_collapseMode="pin"
                app:popupTheme="@style/AppTheme"/>

        </net.opacapp.multilinecollapsingtoolbar.CollapsingToolbarLayout>

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

    <android.support.design.widget.FloatingActionButton
        android:id="@+id/detalle_info_fab_check"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="16dp"
        android:clickable="false"
        android:src="@drawable/ic_check1"
        app:fabSize="mini"
        app:backgroundTint="@android:color/white"
        app:layout_anchor="@+id/appbar"
        app:layout_anchorGravity="bottom|right|end" />

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

<include
    android:id="@+id/adview"
    layout="@layout/adview"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true" />

【问题讨论】:

    标签: android toolbar shadow android-tablayout android-collapsingtoolbarlayout


    【解决方案1】:

    尝试为您的AppBarLayout 设置app:elevation="0dp"(不是android:elevation)。

    如果您的 xml 中没有应用命名空间,请添加 xmlns:app="http://schemas.android.com/apk/res-auto"。

    这两个属性的区别可以看here。

    之后,检查您是否添加了具有以下任何属性的背景/边框:

     <android.support.design.widget.TabLayout
        android:background="?attr/colorPrimary"
        android:translationZ="2dp"
        app:layout_anchor="@+id/appbar"
        app:layout_anchorGravity="bottom"
        app:tabGravity="fill"
        app:tabIndicatorColor="@android:color/white"/>
    

    或您用于AppBarLayout 的主题。

    【讨论】:

    • 你的代码工作了一半。现在在 Toolbar 和 TabLayout 之间显示一条线(不是阴影)
    • @IMS 已编辑答案。检查您为这些视图设置的颜色和主题。
    • @RominaV 它对我不起作用。请帮助stackoverflow.com/questions/63658694/…
    【解决方案2】:
    <android.support.design.widget.AppBarLayout
            android:id="@+id/appBar"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:elevation="0dp">
    
            <android.support.v7.widget.Toolbar
                android:id="@+id/toolbar"
                android:layout_width="match_parent"
                android:layout_height="56dp"
                app:titleTextColor="@android:color/white" />
    
        </android.support.design.widget.AppBarLayout>
    
    <include layout="@layout/content_tablayout" />
    

    使用app:elevation="0dp" 移除阴影。它一直对我有用。希望它对你有用。

    也可以通过编程方式,

    appBar.setOutlineProvider(null);
    

    【讨论】:

      【解决方案3】:

      你必须把Toolbar和TabLayout放在同一个AppBarLayout中

          <android.support.design.widget.AppBarLayout
          android:id="@+id/appbar"
          android:layout_width="match_parent"
          android:layout_height="200dp"
          android:fitsSystemWindows="true"
          android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
      
          <net.opacapp.multilinecollapsingtoolbar.CollapsingToolbarLayout
              android:id="@+id/collapsing_toolbar"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:fitsSystemWindows="true"
              app:contentScrim="?attr/colorPrimary"
              app:expandedTitleMarginEnd="20dp"
              app:expandedTitleMarginStart="20dp"
              app:expandedTitleTextAppearance="@style/detalle_txt_expanded"
              app:layout_scrollFlags="scroll|exitUntilCollapsed">
      
              <ImageView
                  android:id="@+id/detalle_img"
                  android:layout_width="match_parent"
                  android:layout_height="match_parent"
                  android:fitsSystemWindows="true"
                  android:scaleType="centerCrop"
                  android:src="@drawable/img_thumb_m"
                  android:transitionName="@string/transition"
                  app:layout_collapseMode="parallax"
                  tools:targetApi="lollipop" />
      
              <ImageView
                  android:id="@+id/detalle_img_tipo"
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:layout_margin="15dp"
                  android:layout_gravity="center_horizontal"
                  android:src="@drawable/img_edificio"/>
      
              <android.support.v7.widget.Toolbar
                  android:id="@+id/toolbar"
                  android:layout_width="match_parent"
                  android:layout_height="?attr/actionBarSize"
                  android:minHeight="?attr/actionBarSize"
                  app:layout_collapseMode="pin"
                  app:popupTheme="@style/AppTheme"/>
      
          </net.opacapp.multilinecollapsingtoolbar.CollapsingToolbarLayout>
      
          <android.support.design.widget.TabLayout
              android:id="@+id/tabs"
              android:layout_width="match_parent"
              android:layout_height="50dp"
              android:layout_gravity="bottom"
              android:background="?attr/colorPrimary"
              android:translationZ="2dp"
              app:layout_anchor="@+id/appbar"
              app:layout_anchorGravity="bottom"
              app:tabGravity="fill"
              app:tabIndicatorColor="@android:color/white"
              app:tabIndicatorHeight="3dp"
              app:tabMode="fixed"
              app:tabTextColor="@color/tabs_text_selector" />
      
      </android.support.design.widget.AppBarLayout>
      

      看看这个issue

      【讨论】:

        【解决方案4】:

        我知道问题已经得到解答。但我想分享一些我在艰难中学到的东西,以便面临同样问题的人可以节省时间。

        您需要将AppBarLayout 包裹在CoordinatorLayout 中,否则app:elevation 将不起作用。

        工作示例:

        <CoordinatorLayout>
            <AppBarLayout>
                <Toolbar>
        

        【讨论】:

          猜你喜欢
          • 2016-11-19
          • 1970-01-01
          • 1970-01-01
          • 2015-10-11
          • 2020-01-25
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多