XML布局视图与模拟器视图不同

时间:2018-08-31 07:48:19

标签: android xml android-layout

当前正在学习如何构建Android应用,我的xml文件应该在布局预览中显示文本Sup doge,但根本不显示文本。

这是图片: enter image description here

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

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

更新#1:

我尝试了 Invalidate Cache&Restart (无效的缓存并重新启动),该操作由@Khemraj建议并删除了约束属性。还删除了tools:text="@string/app_name"部分,但其在布局预览中仍显示空白。在构建应用程序时,它仍然可以正常显示。 enter image description here

更新#2:

添加了要检查的背景色。预览有问题。 enter image description here

更新#3

以下是gradle文件夹文件:

gradle-wrapper.properties文件 enter image description here

bulid.gradle文件 enter image description here

HeadFirstProject01文件 enter image description here 有人可以帮助我解决此问题吗?

解决方案

由于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'
}

3 个答案:

答案 0 :(得分:1)

布局预览不起作用。使用使缓存无效并重新启动以查看预览。

建议:

RelativeLayout不支持约束属性。因此,请从TextView中删除那些多余的约束属性。

更新

我看到许多与此相关的问题。答案并不适合所有人。

以下是几种解决方案:

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

答案 1 :(得分:0)

在您的xml中,您正在使用

tools:text="@string/app_name"

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

答案 2 :(得分:0)

如果您的Android Studio版本是3或3以上,则必须在styles.xml文件中进行一些更改。

您将在此处获得该父样式:

 <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">

根据以下内容进行更改:

 <style name="AppTheme" parent="Base.Theme.AppCompat.Light.DarkActionBar">

我为此解决了同样的问题。