应用启动时看不到CardView Elevation
CardView Elevation cannot be seen when the app starts
我正在制作一个应用程序,其中将在卡片视图中有一个列表视图。下面是 XML 代码。我想使用海拔高度,所以我做到了。但它没有用。所以我在这里查看了一些问题的答案。我尝试了其中的大部分,包括依赖项,使用 compatPadding 和 hardwareAccelerated = "true"。但是当我 运行 我的红米 5 手机上的应用程序时,列表视图可以完美显示,但是看不到卡片下方的 CardView Elevation 或阴影,只是一条正常的线。我在下面的listView布局中有什么错误吗XML(不是主要的activity XML):
<android.support.v7.widget.CardView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:card_view="http://schemas.android.com/tools"
android:id="@+id/cardViewMain"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/colorAccent"
android:layout_margin="8dp"
card_view:cardCornerRadius="3dp"
card_view:cardElevation="16dp"
card_view:cardUseCompatPadding="true">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/ivMain"
android:layout_width="352dp"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_alignParentEnd="true"
android:layout_marginStart="6dp"
android:layout_marginLeft="6dp"
android:layout_marginTop="13dp"
android:layout_marginEnd="8dp"
app:srcCompat="@drawable/dhaka" />
<TextView
android:id="@+id/tvMain"
android:layout_width="365dp"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_marginStart="10dp"
android:layout_marginLeft="10dp"
android:layout_marginTop="144dp"
android:layout_marginEnd="9dp"
android:layout_marginRight="9dp"
android:fontFamily="@font/audiowide"
android:text="TextView"
android:textAllCaps="true"
android:textColor="@color/blue"
android:textSize="22sp"
android:textStyle="bold" />
<TextView
android:id="@+id/tvDesc"
android:layout_width="342dp"
android:layout_height="wrap_content"
android:layout_alignStart="@+id/tvMain"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_alignParentEnd="true"
android:layout_marginStart="3dp"
android:layout_marginLeft="13dp"
android:layout_marginTop="183dp"
android:layout_marginEnd="11dp"
android:fontFamily="@font/aldrich"
android:text="TextView"
android:textAllCaps="false"
android:textColor="@color/colorPrimary"
android:textSize="18sp"
android:textStyle="italic" />
</RelativeLayout>
</android.support.v7.widget.CardView>
依赖关系:
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-
core:3.0.2'
implementation 'com.android.support:cardview-v7:28.0.0'
}
如果您需要 activity_main.xml 文件代码,请告诉我。谢谢
删除它 `app:cardElevation="@dimen/size_3" 并使用 app:cardElevation="@dimen/size_3"
<android.support.v7.widget.CardView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:card_view="http://schemas.android.com/tools"
android:id="@+id/cardViewMain"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/colorAccent"
android:layout_margin="8dp"
card_view:cardCornerRadius="3dp"
card_view:cardElevation="16dp"
card_view:cardUseCompatPadding="true">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/ivMain"
android:layout_width="352dp"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_alignParentEnd="true"
android:layout_marginStart="6dp"
android:layout_marginLeft="6dp"
android:layout_marginTop="13dp"
android:layout_marginEnd="8dp"
app:srcCompat="@drawable/dhaka" />
<TextView
android:id="@+id/tvMain"
android:layout_width="365dp"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_marginStart="10dp"
android:layout_marginLeft="10dp"
android:layout_marginTop="144dp"
android:layout_marginEnd="9dp"
android:layout_marginRight="9dp"
android:fontFamily="@font/audiowide"
android:text="TextView"
android:textAllCaps="true"
android:textColor="@color/blue"
android:textSize="22sp"
android:textStyle="bold" />
<TextView
android:id="@+id/tvDesc"
android:layout_width="342dp"
android:layout_height="wrap_content"
android:layout_alignStart="@+id/tvMain"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_alignParentEnd="true"
android:layout_marginStart="3dp"
android:layout_marginLeft="13dp"
android:layout_marginTop="183dp"
android:layout_marginEnd="11dp"
android:fontFamily="@font/aldrich"
android:text="TextView"
android:textAllCaps="false"
android:textColor="@color/colorPrimary"
android:textSize="18sp"
android:textStyle="italic" />
</RelativeLayout>
</android.support.v7.widget.CardView>
尝试使用
android:translationZ="5dp"
制作海拔效果。 :)
解法:
虽然你的布局在我的笔记本电脑上运行得很好。 (下面附上一张图片)
您可以尝试以下解决方案之一:
解决方案1:
让你的hardwareAccelerated = "false"
在你的Manifest.xml
虽然,这不是必需的在大多数情况下。 (我没有添加它,仍然有效)
解决方案2:
应用一定的边距作为: android:layout_margin="4dp"
因为有时你有海拔但它似乎没有出现因为它隐藏在
解法3:
确保你有 res-auto 架构 xmlns:card_view="http://schemas.android.com/apk/res-auto"
用于 cardview 的提升
解4:
如果上述解决方案中的 none 适合您,最后尝试添加以下两个依赖项:
implementation 'com.android.support:design:28.0.0'
implementation 'com.android.support:support-v4:28.0.0'
我认为,给定的解决方案之一必须有效。
但是,按照我对您程序的看法,对您来说,Solution3 应该可行。所以,
替换为:
xmlns:card_view="http://schemas.android.com/tools"
有了这个:
xmlns:card_view="http://schemas.android.com/apk/res-auto"
或您也可以在您的cardview
xml中将cardview
替换为app
,如下所示:
<android.support.v7.widget.CardView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:card_view="http://schemas.android.com/tools"
android:id="@+id/cardViewMain"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/colorAccent"
android:layout_margin="8dp"
app:cardCornerRadius="3dp"
app:cardElevation="16dp"
app:cardUseCompatPadding="true">
........
</android.support.v7.widget.CardView>
我希望其中一种方法对您有用。
我正在制作一个应用程序,其中将在卡片视图中有一个列表视图。下面是 XML 代码。我想使用海拔高度,所以我做到了。但它没有用。所以我在这里查看了一些问题的答案。我尝试了其中的大部分,包括依赖项,使用 compatPadding 和 hardwareAccelerated = "true"。但是当我 运行 我的红米 5 手机上的应用程序时,列表视图可以完美显示,但是看不到卡片下方的 CardView Elevation 或阴影,只是一条正常的线。我在下面的listView布局中有什么错误吗XML(不是主要的activity XML):
<android.support.v7.widget.CardView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:card_view="http://schemas.android.com/tools"
android:id="@+id/cardViewMain"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/colorAccent"
android:layout_margin="8dp"
card_view:cardCornerRadius="3dp"
card_view:cardElevation="16dp"
card_view:cardUseCompatPadding="true">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/ivMain"
android:layout_width="352dp"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_alignParentEnd="true"
android:layout_marginStart="6dp"
android:layout_marginLeft="6dp"
android:layout_marginTop="13dp"
android:layout_marginEnd="8dp"
app:srcCompat="@drawable/dhaka" />
<TextView
android:id="@+id/tvMain"
android:layout_width="365dp"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_marginStart="10dp"
android:layout_marginLeft="10dp"
android:layout_marginTop="144dp"
android:layout_marginEnd="9dp"
android:layout_marginRight="9dp"
android:fontFamily="@font/audiowide"
android:text="TextView"
android:textAllCaps="true"
android:textColor="@color/blue"
android:textSize="22sp"
android:textStyle="bold" />
<TextView
android:id="@+id/tvDesc"
android:layout_width="342dp"
android:layout_height="wrap_content"
android:layout_alignStart="@+id/tvMain"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_alignParentEnd="true"
android:layout_marginStart="3dp"
android:layout_marginLeft="13dp"
android:layout_marginTop="183dp"
android:layout_marginEnd="11dp"
android:fontFamily="@font/aldrich"
android:text="TextView"
android:textAllCaps="false"
android:textColor="@color/colorPrimary"
android:textSize="18sp"
android:textStyle="italic" />
</RelativeLayout>
</android.support.v7.widget.CardView>
依赖关系:
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-
core:3.0.2'
implementation 'com.android.support:cardview-v7:28.0.0'
}
如果您需要 activity_main.xml 文件代码,请告诉我。谢谢
删除它 `app:cardElevation="@dimen/size_3" 并使用 app:cardElevation="@dimen/size_3"
<android.support.v7.widget.CardView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:card_view="http://schemas.android.com/tools"
android:id="@+id/cardViewMain"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/colorAccent"
android:layout_margin="8dp"
card_view:cardCornerRadius="3dp"
card_view:cardElevation="16dp"
card_view:cardUseCompatPadding="true">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/ivMain"
android:layout_width="352dp"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_alignParentEnd="true"
android:layout_marginStart="6dp"
android:layout_marginLeft="6dp"
android:layout_marginTop="13dp"
android:layout_marginEnd="8dp"
app:srcCompat="@drawable/dhaka" />
<TextView
android:id="@+id/tvMain"
android:layout_width="365dp"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_marginStart="10dp"
android:layout_marginLeft="10dp"
android:layout_marginTop="144dp"
android:layout_marginEnd="9dp"
android:layout_marginRight="9dp"
android:fontFamily="@font/audiowide"
android:text="TextView"
android:textAllCaps="true"
android:textColor="@color/blue"
android:textSize="22sp"
android:textStyle="bold" />
<TextView
android:id="@+id/tvDesc"
android:layout_width="342dp"
android:layout_height="wrap_content"
android:layout_alignStart="@+id/tvMain"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_alignParentEnd="true"
android:layout_marginStart="3dp"
android:layout_marginLeft="13dp"
android:layout_marginTop="183dp"
android:layout_marginEnd="11dp"
android:fontFamily="@font/aldrich"
android:text="TextView"
android:textAllCaps="false"
android:textColor="@color/colorPrimary"
android:textSize="18sp"
android:textStyle="italic" />
</RelativeLayout>
</android.support.v7.widget.CardView>
尝试使用
android:translationZ="5dp"
制作海拔效果。 :)
解法:
虽然你的布局在我的笔记本电脑上运行得很好。 (下面附上一张图片)
您可以尝试以下解决方案之一:
解决方案1:
让你的hardwareAccelerated = "false"
在你的Manifest.xml
虽然,这不是必需的在大多数情况下。 (我没有添加它,仍然有效)
解决方案2:
应用一定的边距作为: android:layout_margin="4dp"
因为有时你有海拔但它似乎没有出现因为它隐藏在
解法3:
确保你有 res-auto 架构 xmlns:card_view="http://schemas.android.com/apk/res-auto"
用于 cardview 的提升
解4:
如果上述解决方案中的 none 适合您,最后尝试添加以下两个依赖项:
implementation 'com.android.support:design:28.0.0'
implementation 'com.android.support:support-v4:28.0.0'
我认为,给定的解决方案之一必须有效。
但是,按照我对您程序的看法,对您来说,Solution3 应该可行。所以,
替换为:
xmlns:card_view="http://schemas.android.com/tools"
有了这个:
xmlns:card_view="http://schemas.android.com/apk/res-auto"
或您也可以在您的cardview
xml中将cardview
替换为app
,如下所示:
<android.support.v7.widget.CardView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:card_view="http://schemas.android.com/tools"
android:id="@+id/cardViewMain"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/colorAccent"
android:layout_margin="8dp"
app:cardCornerRadius="3dp"
app:cardElevation="16dp"
app:cardUseCompatPadding="true">
........
</android.support.v7.widget.CardView>
我希望其中一种方法对您有用。