WEBVTT 00:00:00.450 --> 00:00:03.650 Прежде чем начать с кодами, я отвечу на этот вопрос. 00:00:03.650 --> 00:00:07.460 Я пока что знаю только о двух группах элементов, LinearLayouts и 00:00:07.460 --> 00:00:08.626 RelativeLayouts. 00:00:08.626 --> 00:00:13.710 Ключевым тут было то, что эти группы должны занимать равное пространство. 00:00:13.710 --> 00:00:16.260 Это легко сделать, использовуя вес панели. 00:00:17.480 --> 00:00:20.070 ну что ж, давайте посмотрим на код. 00:00:20.070 --> 00:00:22.880 Я больше не буду работать в Java, поэтому я перейду 00:00:22.880 --> 00:00:24.775 к файлу activity_main.xml. 00:00:25.830 --> 00:00:27.150 А вот мой XML файл. 00:00:28.270 --> 00:00:33.875 Начну с того, что внесу весь этот код в другой LinearLayout. 00:00:33.875 --> 00:00:38.334 Это родительский элемент LinearLayout для двух моих мини LinearLayouts. 00:00:39.360 --> 00:00:43.900 Я передвину эти две строки сюда вверх, потому что они 00:00:43.900 --> 00:00:49.670 должны быть присоединены к корневому элементу, добавим закрывающую скобку. 00:00:49.670 --> 00:00:53.990 Android Studio автоматически сделало для меня закрывающий тэг вот здесь. 00:00:53.990 --> 00:00:55.060 Так что я сейчас 00:00:55.060 --> 00:00:59.370 вырежу этот закрывающий тэг, прокручу вниз и вставлю его. 00:01:01.160 --> 00:01:06.450 Так появилась красная волнистая линия и если я посмотрю на ошибку, я увижу, 00:01:06.450 --> 00:01:10.660 что мне предлагают определить высоту layout_height и ширину layout_width. 00:01:10.660 --> 00:01:12.040 Ой! Что ж, давайте так и сделаем. 00:01:13.210 --> 00:01:17.580 Это корневой элемент, я пропишу соответствие match_parent. 00:01:20.050 --> 00:01:21.140 Хорошо. Итак. 00:01:21.140 --> 00:01:25.610 У меня есть один LinearLayout, окру- жающий дочернюю запись LinearLayout. 00:01:25.610 --> 00:01:30.500 И если зайти в предпросмотр, выглядит почти так же. 00:01:30.500 --> 00:01:35.510 Ладно, я сделаю вот что: я скопирую все в 00:01:35.510 --> 00:01:41.100 LinearLayout команды А, и сразу же под командой А это вставлю. 00:01:42.160 --> 00:01:47.026 Это будет LinearLayout для команды Б. 00:01:47.026 --> 00:01:52.209 Вот теперь записи выглядят немного неорганизованно. 00:01:52.209 --> 00:01:57.264 Поэтому я сделаю Cmd+A, или выбрать все, а потом 00:01:57.264 --> 00:02:03.520 воспользуюсь сочетанием клавиш Cmd+Option+L для переформатирования. 00:02:03.520 --> 00:02:07.930 В среде Windows, то же действие на Ctrl+Alt+L. Так выглядит лучше. 00:02:07.930 --> 00:02:11.560 Теперь я хочу убедиться в том, что вы понимаете, что тут происходит. 00:02:11.560 --> 00:02:16.640 Проматываю вверх, тут у меня корневой LinearLayout. 00:02:16.640 --> 00:02:21.930 Он начинается тут, и если я промотаю вниз, до конца, заканчивается он тут. 00:02:23.320 --> 00:02:26.550 Внутри этого корневого LinearLayout, я снова промотаю вверх. 00:02:28.220 --> 00:02:31.919 Здесь у меня дочерняя раскладка, которая начинается тут. 00:02:31.919 --> 00:02:35.459 Я медленно пролистаю вниз. 00:02:35.459 --> 00:02:37.150 Она заканчивается здесь. 00:02:37.150 --> 00:02:38.860 Это для команды A. 00:02:38.860 --> 00:02:42.260 И есть еще один дочерний LinearLayout который начинается здесь. 00:02:42.260 --> 00:02:47.418 Медленно проилистываем вниз, заканчивается тут для команды Б. 00:02:47.418 --> 00:02:49.956 Хорошо. Там, вверху я заметила что-то красное, так что 00:02:49.956 --> 00:02:52.750 я снова возвращаюсь вверх и смотрю, в чем ошибка. Неправильная 00:02:54.400 --> 00:02:58.440 ориентация, ориентация не указана, а по умолчанию она горизонтальная. 00:02:58.440 --> 00:03:00.965 Однако в этой раскладке есть пара дочерних записей, 00:03:00.965 --> 00:03:03.793 где, по крайней мере, в одной есть ширина match_parent. 00:03:03.793 --> 00:03:08.092 Гмм, я и правда хочу, чтобы она была горизонтальной, но давайте 00:03:08.092 --> 00:03:10.010 все же уточним ориентацию. 00:03:11.360 --> 00:03:15.400 Технически это не нужно, потому что горизонтально по умолчанию, 00:03:15.400 --> 00:03:16.430 но лучше все же уточнить. 00:03:17.950 --> 00:03:22.168 Тут еще говорится, что дочерние записи накрывают друг друга. 00:03:22.168 --> 00:03:24.334 Нажимаю на Предпросмотр. 00:03:24.334 --> 00:03:27.901 Гм, вроде бы не сильно изменилось, хотя я постаралась 00:03:27.901 --> 00:03:30.842 скопировать и вставить все с одного в другой LinearLayout. 00:03:31.905 --> 00:03:34.345 Наверное это связано с только что увиденной ошибкой. 00:03:35.525 --> 00:03:38.915 Там было написано, что раскладка горизонтальна. 00:03:38.915 --> 00:03:42.615 Так что оно пытается уложить эти два LinearLayouts рядом друг с другом, но 00:03:42.615 --> 00:03:46.591 тот LinearLayout, у которого ширина layout_width соответствует 00:03:46.591 --> 00:03:49.940 match_parent, заполняет весь экран. 00:03:49.940 --> 00:03:54.510 Так что мой первый LinearLayout заполняет экран, а 00:03:54.510 --> 00:03:58.510 потом второй размещается рядом с ним где-то за экраном. 00:04:00.000 --> 00:04:03.360 Давайте решим, что мы хотим сделать в данный момент. 00:04:03.360 --> 00:04:08.090 Мы хотим, чтобы две раскладки занимали равное пространство рядом. 00:04:08.090 --> 00:04:11.860 И вот тут нам понадобится ввести вес layout_weight. 00:04:11.860 --> 00:04:16.267 Я беру первый LinearLayout и 00:04:16.267 --> 00:04:19.579 присваиваю ему layout_weight, равную 1. 00:04:21.140 --> 00:04:26.160 И еще я присвою ему ширину 0. 00:04:26.160 --> 00:04:29.940 Ну вот, теперь видно, что у нас вообще-то два LinearLayout, 00:04:29.940 --> 00:04:32.940 они просто не отображались как следует. 00:04:32.940 --> 00:04:34.560 Вот так уже лучше. 00:04:34.560 --> 00:04:37.807 Теперь надо присвоить layout_weight второму LinearLayout, 00:04:37.807 --> 00:04:38.877 вот тут. 00:04:38.877 --> 00:04:40.500 Так что я пролистаю вниз. 00:04:40.500 --> 00:04:42.190 А вот и мой второй LinearLayout. 00:04:42.190 --> 00:04:44.250 И проделаю ту же самую операцию. 00:04:44.250 --> 00:04:48.186 Я ему присвою layout_weight тоже равный 1, так что 00:04:48.186 --> 00:04:51.080 теперь у них одинаковый вес layout_weight. 00:04:52.650 --> 00:04:55.630 И еще раз присвою ширину 0. 00:04:55.630 --> 00:05:00.160 А причина того, что я присвоила им обоим ширину 0 в том, 00:05:00.160 --> 00:05:04.588 что если обе этих стороны не занимают никакой ширины, 00:05:04.588 --> 00:05:06.850 тогда они занимают все лишнее пространство, 00:05:06.850 --> 00:05:11.340 чем является весь экран, и делят его на две части: половина одному 00:05:11.340 --> 00:05:14.950 и половина другому, потому что у них равный вес раскладки. 00:05:14.950 --> 00:05:17.650 Если это немного запутанно, я дала ссылки на несколько видео 00:05:17.650 --> 00:05:20.350 с обучающими заметками по layout_weight. 00:05:20.350 --> 00:05:24.162 Итак, выглядит вполне неплохо, кроме того, что пишет там и там Команда А. 00:05:24.162 --> 00:05:29.310 Я поднимусь вверх и изменю подпись, напишу Команда Б. 00:05:30.460 --> 00:05:35.420 Вы могли заметить, что тут тоже есть ошибка, а 00:05:35.420 --> 00:05:39.760 происходит она из-за того, что у нас дубликаты ID. 00:05:39.760 --> 00:05:42.340 Вы помните, что я просто скопировала и вставила код. 00:05:42.340 --> 00:05:46.090 Грубо говоря, у нас тут два объекта, у которых одинаковый ID 00:05:46.090 --> 00:05:48.030 счета команды team_a_score. 00:05:48.030 --> 00:05:51.800 Поэтому я поменяю это сейчас на team_b_score. 00:05:51.800 --> 00:05:53.840 Теперь смотрится хорошо. 00:05:53.840 --> 00:05:54.830 Трудновато увидеть. 00:05:54.830 --> 00:05:55.420 Я увеличу. 00:05:56.800 --> 00:05:58.150 Но тут написано Команда Б. 00:05:59.290 --> 00:06:02.420 У меня все правильные кнопки и правильные элементы текста. 00:06:02.420 --> 00:06:03.870 Так что попробую посмотреть на это 00:06:05.490 --> 00:06:07.960 на своем телефоне. Выглядит хорошо. 00:06:07.960 --> 00:06:13.418 Если нажимать кнопки Команды А, счет обновляется. Чудесно. 00:06:13.418 --> 00:06:18.840 Если нажимать кнопки Команды Б... ну, счет тоже обновляется. 00:06:18.840 --> 00:06:20.910 Это нечто. 00:06:20.910 --> 00:06:23.480 Но помните, мы просто хотели настроить правильно XML. 00:06:23.480 --> 00:06:25.630 Нам сейчас неважно, что с Java. 00:06:25.630 --> 00:06:29.140 Но раз уж XML работает, почему бы не исправить Java?