我的(特定)布局会导致 Android Studio XML 布局预览继续加载,但不显示预览

My (Specific) layout causes Android Studio XML Layout Preview to keep on loading and not displaying the preview

提问人:Hasnain Ghias 提问时间:1/17/2020 更新时间:5/7/2020 访问量:249

问:

我正在制作一个包含 CardView 和嵌套线性布局的布局。当我第一次制作布局时,它工作正常,预览窗口也显示更改。一天后,当我打开android Studio时,预览窗口一直说“等待构建完成”。所以我认为这是与IDE有关的错误。

我尝试了这里推荐的所有解决方案:

  • 清洁项目
  • 重建使缓存失效并重新启动
  • 从 Gradle 中删除缓存文件夹

但是我发现问题出在我的布局上,因为我删除了布局,重新构建了项目,预览再次正常工作。现在我尝试从头开始再次进行相同的布局,但它仍然再次发生。这对我来说很奇怪,因为我的布局很简单,我以前创建过类似的布局,没有任何问题。 我正在使用最新的 Api 版本 29,带有最新的构建工具和最新的 Android Studio。

这是我的布局代码:

<RelativeLayout 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:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/light"
    tools:context=".Ui.Setting">

    <androidx.appcompat.widget.Toolbar
        android:id="@+id/setting_toolbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/light"
        android:minHeight="?attr/actionBarSize"
        android:theme="@style/ToolbarTheme"
        app:title="SETTINGS"
        app:titleMarginStart="40dp"
        app:titleTextColor="@color/dark" />

    <com.google.android.material.textview.MaterialTextView
        android:id="@+id/accessibility"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/setting_toolbar"
        android:layout_marginStart="10dp"
        android:padding="10dp"
        android:text="@string/accessibility"
        android:textColor="@color/dark"
        android:textSize="18sp" />

    <androidx.cardview.widget.CardView
        android:id="@+id/accessibility_card"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/accessibility"
        android:layout_marginStart="10dp"
        android:layout_marginEnd="10dp"
        app:cardCornerRadius="8dp"
        app:cardElevation="10dp"
        app:contentPadding="5dp">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="horizontal"
            android:baselineAligned="false">

            <LinearLayout
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="2"
                android:gravity="center_vertical">

                <com.google.android.material.textview.MaterialTextView
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_marginStart="10dp"
                    android:layout_weight="1"
                    android:text="@string/grey_scale" />

                <com.google.android.material.switchmaterial.SwitchMaterial
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    app:useMaterialThemeColors="true" />
            </LinearLayout>
            <View
                android:layout_width="match_parent"
                android:layout_height="2dp"
                android:background="@android:color/darker_gray" />
        </LinearLayout>
        <LinearLayout
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="2"
            android:gravity="center_vertical">

            <com.google.android.material.textview.MaterialTextView
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_marginStart="10dp"
                android:layout_weight="0.5"
                android:text="@string/text_size" />

            <LinearLayout
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1.5"
                android:gravity="center_vertical"
                android:orientation="horizontal"
                android:weightSum="3">

                <com.google.android.material.textview.MaterialTextView
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="0.5"
                    android:gravity="end"
                    android:text="@string/aminus" />

                <com.google.android.material.slider.Slider
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="2" />

                <com.google.android.material.textview.MaterialTextView
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_marginEnd="10dp"
                    android:layout_weight="0.5"
                    android:gravity="end"
                    android:text="@string/aplus" />

            </LinearLayout>
        </LinearLayout>



    </androidx.cardview.widget.CardView>
    </RelativeLayout>
安卓 android-studio android-layout android-cardview

评论

0赞 Ajeett 1/17/2020
您是否在 gradle 中添加了材料库以使用 MaterialTextView?
0赞 Hasnain Ghias 1/17/2020
是的,这就是我使用 Material TextView 的原因,如果没有添加,我为什么要使用
1赞 MarsPeople 3/5/2020
com.google.android.material.slider.Slider 预览版在 android studio 上不起作用,正在等待构建完成显示...是虫子吗?

答:

2赞 Viktor Ivanov 1/24/2020 #1

问题的原因是滑块。我也在尝试解决它,但仍然没有成功。

评论

0赞 Hasnain Ghias 3/5/2020
如果您有任何成功,请更新我。
1赞 Hardik Lohogaonkar 5/7/2020 #2

对不起,回复晚了...使用或简单地用传统的 .我在材料滑块上也遇到了同样的问题。AppCompatSliderSeekbar

评论

0赞 Hardik Lohogaonkar 7/9/2020
材质滑块问题已在 Android Studio 4.0 中修复