【问题标题】:XML layout view not the same as emulator viewXML 布局视图与模拟器视图不同
【发布时间】:2018-08-31 20:31:47
【问题描述】:

目前正在学习如何构建一个 android 应用程序,我的 xml 文件应该在布局预览中显示文本 Sup doge,但它根本没有显示。

图片如下:

但是,当我构建应用程序并在模拟器上运行它时,文本会显示:

现在我遇到了一个问题,我需要不断构建应用程序,以便在我应该在布局中查看它时查看模拟器中的任何小的 UI 更改。

更新 #1:

我尝试了@Khemraj 建议的 Invalidate Cache & Restart 并删除了约束属性。还删除了tools:text="@string/app_name" 部分,但它在布局预览中仍显示为空白。构建应用程序时它仍然显示良好。

更新 #2:

添加了背景颜色进行检查。预览有问题。

更新 #3

这里是 gradle 文件夹文件:

gradle-wrapper.properties 文件

bulid.gradle 文件

HeadFirstProject01 文件 谁能帮我解决这个问题?

解决方案

感谢 Khenraj 的回答,我使用的是不稳定的 sdk 版本,因此我必须将其更新到以前的稳定版本,然后再次构建和同步 gradle:

    android {
        compileSdkVersion 27 //previously was 28
        defaultConfig {
            applicationId "com.example.headfirstproject_01.headfirstproject_01"
            minSdkVersion 14
            targetSdkVersion 27 //previously was 28
            versionCode 1
            versionName "1.0"
            testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        }
        buildTypes {
            release {
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            }
        }
    }

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:27.1.1' //previously was 28.0.0-rc02
    implementation 'com.android.support.constraint:constraint-layout:1.1.2'
    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'
}

【问题讨论】:

  • 您需要更改字符串文件夹中的app_name 字符串(我认为问题出在tools:text =@string/app_name"
  • 尝试在TextView上添加背景,问题是预览根本不起作用。
  • 使用属性 android:layout_alignParentLeft="true" 也因为错误显示在您的 xml 文件中

标签: android xml android-layout


【解决方案1】:

布局预览不起作用。使用 Invalidate Cache & Restart 查看预览。

建议:

RelativeLayout 不支持约束属性。所以从TextView中删除那些多余的约束属性。

更新

我在 SO 上看到了很多与此相关的问题。答案并不适合所有人。

这里有几个解决方案:

  • 降级您的 sdk 版本。 (compileSdkVersion、targetSdkVersion 和支持库版本)
  • 强制刷新布局
  • 重启 Android Studio

【讨论】:

  • 您是否尝试在 TextView 上设置背景,这是否显示在预览中?
  • 检查我的编辑,甚至再次尝试Invalidate Cache & Restart
  • 确定您的预览屏幕无法正常工作,您可以发布您的 build.gradle 文件吗?
  • 已添加,其他文件也截图以防万一
  • 你应该使用稳定版28,现在你可以降级到27版。见stackoverflow.com/a/50833835/6891563
【解决方案2】:

在你使用的 xml 中

tools:text="@string/app_name"

tools:text 在我们使用设计器设计布局时非常有用。它的作用非常简单:代替 android:text,但仅在设计器的预览中执行。这意味着在您的预览中,您将看到您在 tools:text 中指定的内容。这适用于从工具开始的一切:。例如,您还可以指定预览必须使用哪个布局来显示 recyclerview 的项目。我猜您的 app_name 字符串为空,这就是您在预览中看不到任何内容的原因。

【讨论】:

  • 他也在用android:text="'
  • android:text 将应用于真实设备。如果你使用 tools:text,它将覆盖设计器预览中的 android:text
猜你喜欢
  • 2013-07-15
  • 2023-03-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-05
相关资源
最近更新 更多