CardView圆角未在Android预览中显示

时间:2018-03-01 02:46:50

标签: android android-studio android-studio-3.0

我的问题

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

2 个答案:

答案 0 :(得分:2)

生成的预览中的问题是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" />
    
  3. Android Studio支持tools: namespace中的各种XML属性,这些属性可启用设计时功能(例如src的{​​{1}},以便在预览模式下显示。

答案 1 :(得分:0)

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

的价值
  

应用程式:cardCornerRadius

然后再次测试它。