You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

升级ConstraintLayout至1.1.0后仅显示白色背景的UI问题求助

问题排查与解决方案

从你描述的问题和提供的XML代码来看,升级到ConstraintLayout 1.1.0后布局仅显示CardView轮廓的核心原因是约束设置错误导致子视图被挤出屏幕,再加上1.1.0版本对约束完整性的校验更严格,和1.0.2的兼容逻辑不同,才出现了内容消失的情况。

具体问题点分析

看你布局里的两个核心视图:

  1. imageViewPropertyType 设置了 app:layout_constraintLeft_toRightOf="parent" —— 这个约束会让ImageView的左边缘对齐父布局的右边缘,直接把整个视图推到了CardView的外部区域,自然看不到内容。
  2. textViewTitle 同样设置了 app:layout_constraintLeft_toRightOf="parent",也会被挤出屏幕。

早期的ConstraintLayout 1.0.2可能对这类不严谨的约束有“容错”处理,自动调整了视图位置,但1.1.0版本强化了约束的准确性,严格按照你设置的规则布局,就出现了内容消失的问题。

修复步骤

修改这两个视图的约束,把它们调整到CardView内部可见区域,同时优化部分布局细节:

修复后的完整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:tools="http://schemas.android.com/tools" 
    android:id="@+id/mCardviewPropertytype" 
    android:layout_width="160dp" 
    tools:background="@color/gray_black" 
    android:layout_height="180dp" 
    android:layout_margin="8dp" 
    app:cardCornerRadius="8dp" 
    app:cardElevation="2dp">

    <android.support.constraint.ConstraintLayout 
        android:layout_width="match_parent"
        android:layout_height="match_parent" 
        android:layout_gravity="center" 
        android:layout_margin="8dp">

        <android.support.constraint.ConstraintLayout 
            android:id="@+id/ImgPropertySelect" 
            android:layout_width="40dp" 
            android:layout_height="40dp" 
            android:background="@drawable/half_circle" 
            app:layout_constraintRight_toRightOf="parent" 
            app:layout_constraintTop_toTopOf="parent">

            <ImageView 
                tools:visibility="visible" 
                android:layout_marginLeft="10dp" 
                android:layout_marginBottom="10dp" 
                app:layout_constraintLeft_toLeftOf="parent" 
                app:layout_constraintRight_toRightOf="parent" 
                app:layout_constraintTop_toTopOf="parent" 
                app:layout_constraintBottom_toBottomOf="parent" 
                android:layout_width="20dp" 
                android:layout_height="20dp" 
                android:layout_centerInParent="true" 
                app:srcCompat="@drawable/ic_done_white_" />
        </android.support.constraint.ConstraintLayout>

        <android.support.constraint.Guideline 
            android:id="@+id/guideline" 
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content" 
            android:orientation="horizontal" 
            app:layout_constraintGuide_percent="0.5" />

        <ImageView 
            tools:visibility="visible" 
            android:id="@+id/imageViewPropertyType" 
            android:layout_width="80dp" 
            android:layout_height="80dp" 
            android:src="@drawable/residential_villa_img" 
            android:layout_marginLeft="16dp" 
            app:layout_constraintBottom_toTopOf="@+id/guideline" 
            app:layout_constraintLeft_toLeftOf="parent" />

        <TextView 
            tools:text="@string/nearResidentialArea" 
            android:id="@+id/textViewTitle" 
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content" 
            android:layout_marginLeft="16dp" 
            android:layout_marginTop="16dp" 
            android:text="TextView" 
            android:textColor="@color/gray_black" 
            android:textSize="20sp" 
            app:layout_constraintLeft_toLeftOf="parent" 
            app:layout_constraintTop_toBottomOf="@+id/guideline" />
    </android.support.constraint.ConstraintLayout>
</android.support.v7.widget.CardView>

关键修改说明

  • 把外层子ConstraintLayout的宽高从固定160dp/180dp改成match_parent,避免和CardView的尺寸冲突,保证布局填充整个CardView。
  • 将imageViewPropertyType和textViewTitle的app:layout_constraintLeft_toRightOf="parent"改为app:layout_constraintLeft_toLeftOf="parent",让它们的左边缘对齐父布局的左边缘,回到可见区域内。
  • 把TextView的textSize单位从dp改成sp(这是Android字体大小的标准单位,能更好适配不同设备的字体缩放设置)。

额外建议

升级ConstraintLayout版本后,建议开启Android Studio的ConstraintLayout Inspector工具,实时查看视图的约束和位置,能快速定位这类布局偏移问题。

内容的提问来源于stack exchange,提问作者Libin Thomas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 07:16:43