Layout Params public class Main Activity extends App




Класс Layout. Params


Код активности этого чудесного приложения public class Main. Activity extends App. Compat. Activity { Text. View tv 1; @Override protected void on. Create(Bundle saved. Instance. State) { super. on. Create(saved. Instance. State); set. Content. View(R. layout. activity_main); Linear. Layout l. L = find. View. By. Id(R. id. Ll); tv 1 = new Text. View(this); tv 1. set. Text("Default"); Button b 1 = new Button(this); b 1. set. Text("Кнопка 1"); Button b 2 = new Button(this); b 2. set. Text("Кнопка 2"); Button b 3 = new Button(this); b 3. set. Text("Кнопка 3"); b 1. set. Id(View. generate. View. Id()); b 2. set. Id(View. generate. View. Id()); b 3. set. Id(View. generate. View. Id()); View. On. Click. Listener ocl = new View. On. Click. Listener() { @Override public void on. Click(View v) { Button b = (Button)v; tv 1. set. Text(b. get. Text()); } }; b 1. set. On. Click. Listener(ocl); b 2. set. On. Click. Listener(ocl); b 3. set. On. Click. Listener(ocl); b 1. set. Layout. Params(new Linear. Layout. Params( Linear. Layout. Params. MATCH_PARENT, Linear. Layout. Params. WRAP_CONTENT, 1 )); b 2. set. Layout. Params(new Linear. Layout. Params( Linear. Layout. Params. MATCH_PARENT, Linear. Layout. Params. WRAP_CONTENT, 2 )); b 3. set. Layout. Params(new Linear. Layout. Params( Linear. Layout. Params. MATCH_PARENT, Linear. Layout. Params. WRAP_CONTENT, 3 )); l. L. add. View(tv 1); l. L. add. View(b 2); l. L. add. View(b 3); } }

И его макет <? xml version="1. 0" encoding="utf-8"? > <android. support. constraint. Constraint. Layout xmlns: android="http: //schemas. android. com/apk/res/android" xmlns: app="http: //schemas. android. com/apk/res-auto" xmlns: tools="http: //schemas. android. com/tools" android: layout_width="match_parent" android: layout_height="match_parent" tools: context=". Main. Activity"> <Linear. Layout android: id="@+id/Ll" android: layout_width="match_parent" android: layout_height="match_parent" android: layout_margin. Start="8 dp" android: layout_margin. Top="8 dp" android: layout_margin. End="8 dp" android: layout_margin. Bottom="8 dp" android: orientation="vertical" app: layout_constraint. Bottom_to. Bottom. Of="parent" app: layout_constraint. End_to. End. Of="parent" app: layout_constraint. Start_to. Start. Of="parent" app: layout_constraint. Top_to. Top. Of="parent"/> </android. support. constraint. Constraint. Layout>

Ссылки https: //developer. android. com/reference/android/support/constraint/Constraint. Layout. Params https: //developer. android. com/reference/android/widget/Linear. Layout. Params https: //developer. android. com/reference/android/widget/Table. Row. Layout. Params

Класс Constraint. Set

Класс Constraint. Set

package com. example. myapplication; import import android. support. constraint. Constraint. Layout; android. support. constraint. Constraint. Set; android. support. v 7. app. App. Compat. Activity; android. os. Bundle; android. view. View; android. widget. Text. View; Код активности этого чудесного приложения import static com. example. myapplication. R. layout. activity_main; public class Main. Activity extends App. Compat. Activity { //Constraint. Set - класс для управления Constraint. Layout Constraint. Set cs = new Constraint. Set(); //Объявляем объект Constraint. Layout, которым будем управлять Constraint. Layout constraint. Layout; @Override protected void on. Create(Bundle saved. Instance. State) { super. on. Create(saved. Instance. State); set. Content. View(activity_main); //инициализируем объект Constraint. Layout уже после того, как будет задан макет constraint. Layout = find. View. By. Id(R. id. c. L); } public void on. Click. B(View view) { //Создаем текстовое поле, которое будем добавлять по нажатию кнопки Text. View tv 1 = new Text. View(this); //Назначаем ему ID c помощью специального метода (не работает в API старше 17) tv 1. set. Id(View. generate. View. Id()); //Добавляем текст в текстовое поле tv 1. set. Text("ААААААААААААААААААААААААААААА"); //добавляем текстовое поле в Constraint. Layout constraint. Layout. add. View(tv 1); //Переносим конфигурации Constraint. Layout'а в Constraint. Set cs. clone(constraint. Layout); //Привязываем текстовое поле cs. connect(tv 1. get. Id(), Constraint. Set. LEFT, R. id. b, Constraint. Set. LEFT, 0); cs. connect(tv 1. get. Id(), Constraint. Set. RIGHT, R. id. b, Constraint. Set. RIGHT, 0); cs. connect(tv 1. get. Id(), Constraint. Set. TOP, R. id. b, Constraint. Set. BOTTOM, 50); //Сохраняем изменения cs. apply. To(constraint. Layout); } }

И его макет <? xml version="1. 0" encoding="utf-8"? > <!--Обязательно назначим нашему Layout айдишник!--> <android. support. constraint. Constraint. Layout xmlns: android="http: //schemas. android. com/apk/res/android" android: id="@+id/c. L" xmlns: app="http: //schemas. android. com/apk/res-auto" xmlns: tools="http: //schemas. android. com/tools" android: layout_width="match_parent" android: layout_height="match_parent" tools: context=". Main. Activity"> <Button android: id="@+id/b" android: layout_width="wrap_content" android: layout_height="wrap_content" android: layout_margin. Start="8 dp" android: layout_margin. Top="8 dp" android: layout_margin. End="8 dp" android: layout_margin. Bottom="8 dp" android: on. Click="on. Click. B" android: text="Button" app: layout_constraint. Bottom_to. Bottom. Of="parent" app: layout_constraint. End_to. End. Of="parent" app: layout_constraint. Start_to. Start. Of="parent" app: layout_constraint. Top_to. Top. Of="parent" /> </android. support. constraint. Constraint. Layout>

Полный список мракобесия, которое можно творить с элементами Constraint. Layout можно найти тут: https: //developer. android. com/reference/android/support/constraint/Constraint. Set




- Slides: 17