Intereting Posts
Метод getView () для ArrayAdapter не вызван Android WebView, как обрабатывать перенаправления в приложении, а не открывать браузер Заставка показывает пустой белый экран при выполнении AsyncTask Как обрабатывать изменения с оверлея удаленных томов MediaSession? Андроид-студия застряла в строительстве Throwable: Не удалось создать SD-карту Есть ли плагин Eclipse для интерфейса WSYIWYG для Android? Android Google Maps API v2: получить мое местоположение подшипника Куда поместить собственный файл свойств в проект андроида, созданный с помощью Android Studio? Завершите все действия, кроме одного Android: файл Epub, не отображающий изображения в эмуляторе / устройстве Android Получение дочерних элементов из LinearLayout Как показывать миллисекунды в днях: часы: мин: секунды Как его решить? "Dex Loader SecurityException: Не удается найти поле для dex.jar" Приложение начинает поиск GPS прямо при запуске приложения, а не при необходимости.

Как программно добавлять представления и ограничения в ConstraintLayout?

У меня возникла проблема с программным добавлением представлений в макет Constraint Layout и настройка всех ограничений, необходимых для работы макета.

То, что у меня сейчас, не работает:

ConstraintLayout layout = (ConstraintLayout) findViewById(R.id.mainConstraint); ConstraintSet set = new ConstraintSet(); set.clone(layout); ImageView view = new ImageView(this); layout.addView(view,0); set.connect(view.getId(), ConstraintSet.TOP, layout.getId(), ConstraintSet.TOP, 60); set.applyTo(layout); 

ImageView даже не отображается на макете. Добавляя RelativeLayout , он работает как шарм.

Что я могу сделать для создания необходимых мне ограничений, чтобы мой макет снова работал?

Я думаю, вы должны клонировать макет после добавления ImageView.

 ConstraintLayout layout = (ConstraintLayout)fndViewById(R.id.mainConstraint); ConstraintSet set = new ConstraintSet(); ImageView view = new ImageView(this); layout.addView(view,0); set.clone(layout); set.connect(view.getId(), ConstraintSet.TOP, layout.getId(), ConstraintSet.TOP, 60); set.applyTo(layout);