CardView圆角未在Android预览中显示

问题描述 投票:0回答:2

我的问题

通过XML定义的卡片视图在Android工作室预览中没有显示其正确的圆角(它们被子视图覆盖)。

虽然它在模拟器中渲染后显示得很好,但我担心这种“故障”可能是我做错事或忘记某些关键属性的症状。即使它不是更深层次问题的症状,任何人都可以提供有关如何解决这种美学错误的任何见解吗?

有谁可以权衡这个?

<android.support.v7.widget.CardView
    android:layout_marginTop="16dp"
    android:layout_marginStart="16dp"
    android:layout_marginEnd="16dp"
    android:layout_marginBottom="16dp"

    app:cardCornerRadius="10dp"

    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.v7.widget.AppCompatImageView
        android:src="@color/red"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>

</android.support.v7.widget.CardView>

Android工作室截图

enter image description here

Android模拟器截图

enter image description here

android android-studio android-studio-3.0
2个回答
1
投票

生成的预览中的问题是CardView中的内容没有被剪切到CardView的边界,所以你看到的角落是ImageView的角落,当你在模拟器/设备上运行时它实际上被剪裁了。

如果您真的想要生成类似于真实的预览,可以尝试这种解决方法。

  1. 添加具有所需角半径的存根可绘制。 <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <corners android:radius="20dp" /> <solid android:color="@android:color/holo_green_light" /> </shape>
  2. 然后将其设置为ImageView命名空间下tools:的背景。 <ImageView android:layout_width="match_parent" android:layout_height="match_parent" android:src="@android:color/holo_blue_bright" tools:src="@drawable/test" />

Android Studio支持tools: namespace中的各种XML属性,这些属性支持设计时功能(例如srcImageView在预览模式下显示)。


0
投票

这里圆角通常显示您的代码。我的测试手机是Android 7.1。所以我认为你应该清除手机的缓存并再次安装这个应用程序。或者你应该增加价值

应用:cardCornerRadius

然后再测试一下。

© www.soinside.com 2019 - 2024. All rights reserved.