XML-представление макета не совпадает с представлением эмулятора - PullRequest
0 голосов
/ 31 августа 2018

В настоящее время изучая, как создать приложение для Android, мой xml-файл должен отображать текст Sup doge в предварительном просмотре макета, но он вообще не отображается.

Вот картинка: enter image description here

Однако текст будет отображаться, когда я создаю приложение и запускаю его на эмуляторе: enter image description here

Теперь у меня проблема с тем, что мне нужно постоянно создавать приложение, чтобы увидеть небольшие изменения пользовательского интерфейса в эмуляторе, когда вместо этого я должен просматривать его в макете.

ОБНОВЛЕНИЕ № 1:

Я пытался сделать недействительным 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 file enter image description here

HeadFirstProject01 file enter image description here Кто-нибудь может помочь мне решить эту проблему?

Решение

Благодаря ответу Хенраджа я использовал нестабильную версию 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 голосов
/ 31 августа 2018

Предварительный просмотр макета не работает. Используйте Invalidate Cache & Restart , чтобы увидеть предварительный просмотр.

Предложение:

RelativeLayout не поддерживает атрибуты ограничения. Поэтому удалите эти избыточные атрибуты ограничения из TextView.

Обновление

Я видел много вопросов, связанных с этим на SO. и ответ не один для всех, ребята.

Вот несколько решений:

  • Понизьте вашу версию SDK. (compileSdkVersion, targetSdkVersion и версии библиотеки поддержки)
  • Принудительное обновление макета
  • Перезапустить Android Studio
0 голосов
/ 31 августа 2018

Если ваша версия Android Studio 3 или выше 3, вам нужно внести некоторые изменения в файл styles.xml.

вы получите этот родительский стиль там:

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

Внесите изменения, как показано ниже:

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

Я решил ту же самую проблему с этим.

0 голосов
/ 31 августа 2018

В вашем xml вы используете

tools:text="@string/app_name"

инструменты: текст очень полезен, когда мы разрабатываем наши макеты с помощью дизайнера. То, что он делает, очень просто: действуйте вместо android: text, но только в предварительном просмотре дизайнера. Это означает, что в вашем предварительном просмотре вы увидите то, что вы указали в инструментах: текст. Это относится ко всему, что начинается с инструментов: Например, вы также можете указать, какой макет должен использоваться в предварительном просмотре для отображения элемента переработчика. Я предполагаю, что ваша строка app_name пуста, и именно поэтому вы ничего не видите в предварительном просмотре.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...