#android #android-layout #android-databinding #android-studio-2.2 #android-constraintlayout
#Android #android-layout #android-привязка данных #android-studio-2.2 #android-constraintlayout
Вопрос:
У меня возникли проблемы с редактором макетов Android Studio после обновления до Android Studio 2.2.1 (со стабильного канала). Редактор иногда скрывает элементы управления «компоновкой ограничений» из пользовательского интерфейса, как показано на скриншотах ниже:
Я использую компоновку ограничений alpha 9 и привязку данных, поэтому макет заключен в тег «layout». Вот код для примера компоновки:
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android">
<data>
<variable
name="viewModel"
type="my.package.name.DashboardViewModel"/>
</data>
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
</android.support.constraint.ConstraintLayout>
</layout>
Элементы управления исчезают и появляются, когда я добавляю / удаляю элементы из макета. Это ошибка в новой компоновке Android Studio или компоновке ограничений? Или я делаю что-то не так?
Ответ №1:
Давайте назовем это ошибкой 🙂
(Я только что отправил его сюда: https://code.google.com/p/android/issues/detail?id=224973 )
Происходит то, что мы показываем только те элементы управления, которые могут применяться к текущему выбору или корню, если они не выбраны. Из-за тега layout корень не является a ConstraintLayout
, поэтому мы не показываем элементы управления, пока вы не выберете элемент. С этой проблемой вы также столкнетесь, если вы встроите CL в другой макет, но, по крайней мере, в случае привязки данных мы, вероятно, должны вести себя так, как если бы root был элементом CL.
Спасибо, мы постараемся исправить это как можно скорее.
Ответ №2:
Обновить
Решаемая в Android Studio 2.3 beta 1.