Урок 6. Виды Layouts. Ключевые отличия и свойства.

Обсуждение уроков
Lenh_h
Сообщения: 1
Зарегистрирован: 26 авг 2015, 12:13

Re: Урок 6. Виды Layouts. Ключевые отличия и свойства.

Сообщение Lenh_h » 26 авг 2015, 12:25

VKB писал(а):Здравствуйте.

Есть ли возможность в TableLayout сделать так, чтобы длинная ячейка с атрибутом span, большим единицы, размещалась полностью, растягивая все столбцы, которые она объединяет по своему размеру? Если сделать так, как в коде ниже, то текст в этой ячейке обрезается. Если убрать android:singleLine="true", то текст в ячейке переносится. Если начать задавать weight, то перестаёт работать wrap_content.

Код: Выделить всё

    <TableLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">

        <TableRow
            android:layout_width="wrap_content"
            android:layout_height="wrap_content">

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Very Long Text"
                android:layout_span="2"
                android:singleLine="true" />
        </TableRow>

        <TableRow
            android:layout_width="wrap_content"
            android:layout_height="wrap_content">

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="short1" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="short2" />

        </TableRow>
    </TableLayout>

android:layout_width="match parent"

Аватара пользователя
An-droid
Сообщения: 51
Зарегистрирован: 25 авг 2015, 10:54

Re: Урок 6. Виды Layouts. Ключевые отличия и свойства.

Сообщение An-droid » 26 авг 2015, 13:22

Может вам обратить внимание на Grid Layout ?
В Android 4.0 появился новый вид макета под именем GridLayout. На первый взгляд он может показаться похожим на TableLayout. Но на самом деле он гораздо удобнее и функциональнее. И очень рекомендуется изучить и использовать его в своих новых проектах, которые разрабатываются под новую платформу.

Разметка относится к классу android.widget.GridLayout и имеет колонки, ряды, клетки как в TableLayout, но при этом элементы могут гибко настраиваться.
Обратите внимание на атрибуты layout_column и layout_columnSpan, используемые для указания самой левой колонки и количества занимаемых компонентом колонок. Также доступны атрибуты layout_row и layout_rowSpan.
Изображение

Аватара пользователя
Likvidator
Сообщения: 5
Зарегистрирован: 31 авг 2015, 04:18
Откуда: Москва

Re: Урок 6. Виды Layouts. Ключевые отличия и свойства.

Сообщение Likvidator » 31 авг 2015, 15:44

Что-то я не пойму... До этого все уроки прошли на ура... более менее разобрался, хотя встречается много не сразу понятных фраз или понятий.
Начинаю с нуля поэтому не все понимаю.
Проблема вот в чем:
GroupView можно вкладывать друг в друга. Вложим в один LL два других. Удалите в main.xml все элементы (три кнопки) кроме корневого LL. Ориентацию корневого LL укажем вертикальную и добавим в него два новых горизонтальных LL. В списке элементов слева они находятся в разделе Layouts. Напоминаю, что вы можете перетаскивать элементы из списка не только на экран, но и на конкретный элемент на вкладке Outline.

В каждый горизонтальный LL добавим по три кнопки. Получилось два горизонтальных ряда кнопок.
У меня же получается только верхний ряд, а второй явно оказывается за границами экрана:

Изображение

Код: Выделить всё

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="New Button"
            android:id="@+id/button" />

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="New Button"
            android:id="@+id/button2" />

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="New Button"
            android:id="@+id/button3" />
    </LinearLayout>

    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="New Button"
            android:id="@+id/button4" />

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="New Button"
            android:id="@+id/button5" />

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="New Button"
            android:id="@+id/button6" />
    </LinearLayout>
</LinearLayout>
Логично подумав пришел у выводу что явно указаны не верно границы первого LL Horizonal в параметре layout:height match_parent, так как если установить фиксированное значение, то конопки второго ряда начинают подниматься:

Изображение

ПСЫ - пока жду ответа - не буду зацикливаться на этой проблеме - пойду дальше

Аватара пользователя
doter.ua
Сообщения: 1106
Зарегистрирован: 23 ноя 2013, 16:08
Откуда: Ukraine

Re: Урок 6. Виды Layouts. Ключевые отличия и свойства.

Сообщение doter.ua » 31 авг 2015, 16:22

Likvidator писал(а):ПСЫ - пока жду ответа - не буду зацикливаться на этой проблеме - пойду дальше
match_parent - занять все пространство контейнера(родителя). Т.е. для второго места уже нету.
Используй врап_контент или шаманство с weight.
Семь раз отмерь - поставь студию.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.

Аватара пользователя
Likvidator
Сообщения: 5
Зарегистрирован: 31 авг 2015, 04:18
Откуда: Москва

Re: Урок 6. Виды Layouts. Ключевые отличия и свойства.

Сообщение Likvidator » 31 авг 2015, 16:30

Спасибо, Врап - помог...
стоит это явно прописать в уроке

Еще вопрос:
Создадим layout-файл tlayout.xml. с корневым элементом TableLayout
Изображение
Если в этом уроке предыдущие задачи мы выполняли в андроид студии, то этот походу в эклипсе.
Не понятно вообще как тут создать этот ЛЛ

ПСЫ - Причем в видео то же не понятно как он его создал. Так как там он уже есть

ПСЫ - Вообщем разобрался добалять тайбл надо только руками :(

Turalllb
Сообщения: 40
Зарегистрирован: 08 окт 2015, 17:48

Re: Урок 6. Виды Layouts. Ключевые отличия и свойства.

Сообщение Turalllb » 14 окт 2015, 22:02

В общем я продолжаю разбираться в андроид 1.4. Вот долго пытался понять как же создать TableRow. В майн_актив изначально LinearLayout. нажимаю правую кнопку мыши там внизу создать лояут.xml , там просто пишешь Тэг , т.е. если нужен TableRow, так и пишешь . А в 1.2 можно выбрать , кликнув.
Вопрос такой. ставлю вот кнопки . а их много и они переваливают за границы экрана. есть ли параметр ограничивающий это , чтобы кнопки просто в пределах экрана становились мельче , но не выходили за границу?
разобрался. посмотрел в 7 уроке. изменил вес каждой кнопки на 1 и они влезли в ширину экрана. Эти два урока 6 и 7 стоит хорошо изучить, чтоб потом не приходилось по долгу заниматься дизайном, чтоб сразу что есть в голове можно было выстроить)

Аватара пользователя
doter.ua
Сообщения: 1106
Зарегистрирован: 23 ноя 2013, 16:08
Откуда: Ukraine

Re: Урок 6. Виды Layouts. Ключевые отличия и свойства.

Сообщение doter.ua » 15 окт 2015, 00:29

Turalllb писал(а):В общем я продолжаю разбираться в андроид 1.4. Вот долго пытался понять как же создать TableRow. В майн_актив изначально LinearLayout. нажимаю правую кнопку мыши там внизу создать лояут.xml , там просто пишешь Тэг , т.е. если нужен TableRow, так и пишешь . А в 1.2 можно выбрать , кликнув.
Вопрос такой. ставлю вот кнопки . а их много и они переваливают за границы экрана. есть ли параметр ограничивающий это , чтобы кнопки просто в пределах экрана становились мельче , но не выходили за границу?
разобрался. посмотрел в 7 уроке. изменил вес каждой кнопки на 1 и они влезли в ширину экрана. Эти два урока 6 и 7 стоит хорошо изучить, чтоб потом не приходилось по долгу заниматься дизайном, чтоб сразу что есть в голове можно было выстроить)
ГридВью изучи
Семь раз отмерь - поставь студию.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.

Turalllb
Сообщения: 40
Зарегистрирован: 08 окт 2015, 17:48

Re: Урок 6. Виды Layouts. Ключевые отличия и свойства.

Сообщение Turalllb » 15 окт 2015, 19:36

мм gridLayout есть. гляну потом

Ursula
Сообщения: 1
Зарегистрирован: 26 дек 2015, 01:05

Re: Урок 6. Виды Layouts. Ключевые отличия и свойства.

Сообщение Ursula » 26 дек 2015, 01:13

кто знает,что за подозрительное android:background="@android:drawable/editbox_background"> в <EditText, при удалении которого пропадает кнопка "OK"??????

mr.Rich
Сообщения: 5
Зарегистрирован: 17 янв 2016, 11:02

Re: Урок 6. Виды Layouts. Ключевые отличия и свойства.

Сообщение mr.Rich » 17 янв 2016, 18:15

Создадим layout-файл tlayout.xml. с корневым элементом TableLayout
Не смог этого сделать в Android Studio 1.5 через добавление нового Layout Source file.
Нашел способ, через изменение кода.

AlexTank
Сообщения: 4
Зарегистрирован: 22 май 2015, 18:33

Re: Урок 6. Виды Layouts. Ключевые отличия и свойства.

Сообщение AlexTank » 23 янв 2016, 09:02

Если я вставляю текст с relative layout в activity_main, то все прекрасно работает.
Если я создаю файл rlayout и вставляю текст туда, то все элементы уезжают за экран.
Что я делаю не так?
Вложения
Экран.jpg
Экран.jpg (259.65 КБ) 17851 просмотр

Raised
Сообщения: 2
Зарегистрирован: 21 янв 2016, 12:50

Re: Урок 6. Виды Layouts. Ключевые отличия и свойства.

Сообщение Raised » 24 янв 2016, 11:52

AlexTank, а покажи текст с rlayout

AlexTank
Сообщения: 4
Зарегистрирован: 22 май 2015, 18:33

Re: Урок 6. Виды Layouts. Ключевые отличия и свойства.

Сообщение AlexTank » 25 янв 2016, 20:16

Проблема решилась сохранением проекта и перезагрузкой студии.
Однако вопрос: теперь при правках надо сохранять и выходить?
Вложения
Экран.jpg
Экран.jpg (314.56 КБ) 17822 просмотра

VKB
Сообщения: 3
Зарегистрирован: 13 июн 2015, 12:07

Re: Урок 6. Виды Layouts. Ключевые отличия и свойства.

Сообщение VKB » 26 янв 2016, 00:22

Извиняюсь, что отвечаю на такой старый пост, но пока моя проблема была актуальна никто тут ничего не отвечал, а когда я её решил, я уже перестал проверять что тут пишут.
Lenh_h писал(а):android:layout_width="match parent"
Это понятно, но не решало моей проблемы. Мне именно нужно было, чтобы моя таблица выглядела компактно и сжималась, если текст небольшой. Фактически я в ней отображал содержимое HTML-тэга TABLE. HTML с такими задачами справляется прекрасно, поэтому я и расчитывал, что TableLaout тоже легко справится.
An-droid писал(а):Может вам обратить внимание на Grid Layout ?
В Android 4.0 появился новый вид макета под именем GridLayout
Следующее, на что я обратил внимание, когда понял, что TableLayout меня не устраивает, был как раз GridLayout. Но он, к сожалению, появился только начиная с API14, а я свой проект делал для API8 и максимум на что мог пойти - API13. К тому же с обоими этими лайаутами по ходу выяснилась неприятная вещь - они пригодны только для небольших таблиц. Мне нужно было иметь возможность отображать до 2000 строк. Такие большие таблицы потребляют много памяти, формируются и работают медленно. Поэтому я всё переделал на WebView. С ним были свои отдельные немалые заморочки, но конечный результат меня в общем устроил.

Eliseitrifan
Сообщения: 2
Зарегистрирован: 04 мар 2016, 12:21

Re: Урок 6. Виды Layouts. Ключевые отличия и свойства.

Сообщение Eliseitrifan » 04 мар 2016, 12:28

У меня вопрос, я скопировал ваш код, но в конце </AbsoluteLayout> перечеркнут. но Все работает отлично. что значит перечеркивание??

SergiuS
Сообщения: 1
Зарегистрирован: 14 май 2016, 13:17

Re: Урок 6. Виды Layouts. Ключевые отличия и свойства.

Сообщение SergiuS » 16 май 2016, 11:31

Да уж.
Кто дошел до этого урока изучая на Android Studio могут расслабится. Дальше все пошло на Эклипсе (причем древнем как овно мамонта).
Автор конечно молодец, в свое время постарался и попытался все привести к нынешним реалиям (год назад). Но застопорился и перестал обновлять уроки.
Автор вы хоть народ предупредите в первом уроке (чтобы зря времени не теряли), мол дальше вас ждет нежданчик - нихрена не поймете (те кто с нуля).
Спасибо за приятно потраченное время (сарказм).

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Урок 6. Виды Layouts. Ключевые отличия и свойства.

Сообщение Foenix » 16 май 2016, 13:41

Сергиус, вот вы хотя бы на себя со стороны посмотрите.
Пошлите автору письмо, и приложите денег (предварительно спросив, сколько он получает за час работы), тогда это будет конструктивно. а так - это просто пук в космос.
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

ASGold
Сообщения: 3
Зарегистрирован: 09 апр 2017, 09:51

Re: Урок 6. Виды Layouts. Ключевые отличия и свойства.

Сообщение ASGold » 09 апр 2017, 14:25

Eliseitrifan писал(а):У меня вопрос, я скопировал ваш код, но в конце </AbsoluteLayout> перечеркнут. но Все работает отлично. что значит перечеркивание??
перечеркивание означает дословно "Осуждение использования данного" ввиду дальнейшего его исключения (или неподдержки в более новых версиях). Другими словами - устаревшее.
На данный момент в AS вообще походу навязывают не LinearLayout , а android.support.constraint.ConstraintLayout

Ki_Ra
Сообщения: 2
Зарегистрирован: 19 май 2017, 12:37

Re: Урок 6. Виды Layouts. Ключевые отличия и свойства.

Сообщение Ki_Ra » 19 май 2017, 12:55

Подскажите. Почему не перетаскиваются view-элементы в TableLayout? Их можно только вручную прописать. Только TableRow перетаскивается и в него уже можно вставлять элементы. Версия студии 2.2.3.

Ответить