Android 标高不适用于表格布局

Android 标高不适用于表格布局,android,xml,android-elevation,Android,Xml,Android Elevation,我正在ViewPager内的TableOut上设置标高,但它根本不显示。我在stackoverflow上尝试了很多答案,但都无法解决问题。在CoordinatorLayout中设置android:clipToPadding=“false”也不能解决问题。任何帮助都将不胜感激。下面是我正在使用的布局的xml,但现在得到了高度: <android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.and

我正在ViewPager内的TableOut上设置标高,但它根本不显示。我在stackoverflow上尝试了很多答案,但都无法解决问题。在CoordinatorLayout中设置android:clipToPadding=“false”也不能解决问题。任何帮助都将不胜感激。下面是我正在使用的布局的xml,但现在得到了高度:

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

    <View
        android:id="@+id/statusBarBackground"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

    <android.support.design.widget.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
        android:clipToPadding="false" >

        <ScrollView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:clipToPadding="false" >

        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="?attr/colorPrimary"
            app:layout_scrollFlags="scroll|enterAlways"
            app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />

    </ScrollView>

        <android.support.design.widget.TabLayout
            android:id="@+id/tabs"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:tabMode="fixed"
            app:tabGravity="fill"
            app:elevation="3dp" />

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

    <android.support.v4.view.ViewPager
        android:id="@+id/viewpager"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="android.support.design.widget.AppBarLayout$ScrollingViewBehavior" />

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

将app:elevation=“3dp”更改为android:elevation=“3dp”

android:elevation=“3dp”/
  • 要使阴影可见,必须在
    表格布局上设置背景。它可以是与窗口背景相同的颜色(只要是没有alpha的纯色)

  • 您还必须为其提供
    Tablayout
    margin以查看标高。 最小保证金应为您给出的
    标高

    android.support.design.widget.TabLayout
    ...
    android:elevation=“6dp”
    安卓:margin=“10dp”//margin>高程
    android:background=“@color/white”/>


您的布局有两个问题:

  • 更改应用程序:elevation=“3dp”->android:elevation=“3dp”
  • 将android:background=“@color/colorPrimary”添加到您的表格布局中
  • 将android:paddingBottom=“3dp”添加到AppBarLayout
  • 主要思想是,如果视图背景是透明的,或者父视图正在剪裁阴影,则阴影将不会显示

    您仍有一些问题需要解决,但这只是一个开始。

    使用CardView立面; 是的,也许这是小菜一碟,但这是我的工作

    <android.support.v7.widget.CardView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:cardCornerRadius="0dp"
            app:cardElevation="5dp">
            <android.support.design.widget.TabLayout
                     android:id="@+id/tab"
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
                     />
    </android.support.v7.widget.CardView>
    

    将AppBarLayout android:elevation更改为0dp,并将TableLayout android:elevation更改为16dp

    <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" >
    
        <View
            android:id="@+id/statusBarBackground"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />
    
        <android.support.design.widget.AppBarLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
            android:elevation="0dp" >
    
            <ScrollView
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:clipToPadding="false" >
    
            <android.support.v7.widget.Toolbar
                android:id="@+id/toolbar"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                android:background="?attr/colorPrimary"
                app:layout_scrollFlags="scroll|enterAlways"
                app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />
    
        </ScrollView>
    
            <android.support.design.widget.TabLayout
                android:id="@+id/tabs"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                app:tabMode="fixed"
                app:tabGravity="fill"
                android:elevation="16dp" />
    
        </android.support.design.widget.AppBarLayout>
    
        <android.support.v4.view.ViewPager
            android:id="@+id/viewpager"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:layout_behavior="android.support.design.widget.AppBarLayout$ScrollingViewBehavior" />
    
    </android.support.design.widget.CoordinatorLayout>
    
    
    
    仍然没有标高。我正在使用支持库。只需将app:elevation=“0dp”添加到AppBarLayout..@ZeroOne将app:elevation=“0dp”
    添加到AppBarLayout无法工作。哦,抱歉。。将0dp更改为其他值例如:6dp..仍然没有阴影,并且填充使TableLayout上升。如果您说它导致TableLayout上升,则表示正在投射阴影。否则你怎么能感知深度呢?所以现在的问题是,ScrollView的标高低于TableLayout,这意味着TableLayout的阴影位于ScrollView上。TableLayout位于ScrollView下方,因此我认为它们的阴影不会重叠。AppBarLayout是LinearLayout的子类,它根据方向从上到下或从左到右排列其子项,每当你在一个孩子身上设置仰角时,它都会在上下两个孩子身上投下阴影。
    <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" >
    
        <View
            android:id="@+id/statusBarBackground"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />
    
        <android.support.design.widget.AppBarLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
            android:elevation="0dp" >
    
            <ScrollView
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:clipToPadding="false" >
    
            <android.support.v7.widget.Toolbar
                android:id="@+id/toolbar"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                android:background="?attr/colorPrimary"
                app:layout_scrollFlags="scroll|enterAlways"
                app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />
    
        </ScrollView>
    
            <android.support.design.widget.TabLayout
                android:id="@+id/tabs"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                app:tabMode="fixed"
                app:tabGravity="fill"
                android:elevation="16dp" />
    
        </android.support.design.widget.AppBarLayout>
    
        <android.support.v4.view.ViewPager
            android:id="@+id/viewpager"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:layout_behavior="android.support.design.widget.AppBarLayout$ScrollingViewBehavior" />
    
    </android.support.design.widget.CoordinatorLayout>