Урок 7. Layout параметры для View-элементов.

Обсуждение уроков
Аватара пользователя
damager82
Администратор
Сообщения: 1383
Зарегистрирован: 07 янв 2012, 11:32
Контактная информация:

Урок 7. Layout параметры для View-элементов.

Сообщение damager82 » 15 авг 2011, 03:00

На этом уроке мы:
- разбираемся в характеристиках экрана
- рассматриваем layout параметры (высота, ширина, отступ, гравитация, вес)


Click here to read this article!
Последний раз редактировалось damager82 20 июн 2017, 14:54, всего редактировалось 21 раз.
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение

Аватара пользователя
btx
Сообщения: 4
Зарегистрирован: 31 янв 2012, 18:00

Re: Урок 7. Layout параметры для View-элементов.

Сообщение btx » 31 янв 2012, 18:02

Я честно пытался понять зачем нужны значения gravity fill_* и clip_*, но так и не понял. То, что написано про них в хелпе у меня не работает. Если у вас есть сведения по этому поводу – пишите в каменты.
Тут наглядное описание по использованию
http://android-pro.blogspot.com/2010/03 ... ayout.html

Аватара пользователя
damager82
Администратор
Сообщения: 1383
Зарегистрирован: 07 янв 2012, 11:32
Контактная информация:

Re: Урок 7. Layout параметры для View-элементов.

Сообщение damager82 » 01 фев 2012, 16:41

Да, я смотрел этот материал. У меня не работает так как там нарисовано.
На материал аж от 4.10.2009. Возможно это просто рудименты, которые уже не работают, но оставлены для совместимости.
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение

Аватара пользователя
VissarioN
Сообщения: 3
Зарегистрирован: 18 фев 2012, 19:45

Re: Урок 7. Layout параметры для View-элементов.

Сообщение VissarioN » 18 фев 2012, 20:11

Здравствуйте!
Я конечно только новичек в этом деле. Но кажется я понял для чего fill_* и clip_*
Если просто применить gravity, то ни чего не заметно.

Тут с fill_*
Изображение

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

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

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:gravity="fill_vertical"
        android:text="fill_vertical" />

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="without fill_vertical" />

    <Button
        android:id="@+id/button3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:gravity="fill_horizontal"
        android:text="fill_horizontal" />

    <Button
        android:id="@+id/button4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="without fill_horizontal" />

</LinearLayout>
Тут с clip_*
Изображение

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

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

    <Button
        android:id="@+id/button2"
        android:layout_width="226dp"
        android:layout_height="wrap_content"
        android:layout_gravity="clip_vertical"
        android:layout_weight="1"
        android:gravity="right"
        android:text="clip vertical" />

    <Button
        android:id="@+id/button4"
        android:layout_width="225dp"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:text="without clip" />

    <Button
        android:id="@+id/button3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="clip_horizontal"
        android:layout_weight="1"
        android:gravity="top"
        android:text="clip horizontal" />

    <Button
        android:id="@+id/button5"
        android:layout_width="113dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="without clip" />

</LinearLayout>

Если ошибся по поводу fill_* и clip_* извиняйте!


Извените за кучу текста, но почему-то у меня не пашет спойлер.
[Не, я не злой... просто нервный!]

яфпкк
Сообщения: 8
Зарегистрирован: 21 фев 2012, 05:59

Re: Урок 7. Layout параметры для View-элементов.

Сообщение яфпкк » 21 фев 2012, 06:06

привет всем, крутой сайт
теперь я с вами
вопрос по теме с margin'ами в tableLayout.
Почему верхняя средняя кнопка растягивается по горизонтали автоматически, при увеличении отступов у центральной, а левая средняя по вертикали - нет, хотя у обеих указаны
android:layout_width="wrap_content"
android:layout_height="wrap_content"
не понятно почему первая растягивается при таких свойствах

Логично предположить, для того чтобы кнопка растянулась по вертикали, необходимо указать android:layout_height="match_parent"

Аватара пользователя
damager82
Администратор
Сообщения: 1383
Зарегистрирован: 07 янв 2012, 11:32
Контактная информация:

Re: Урок 7. Layout параметры для View-элементов.

Сообщение damager82 » 22 фев 2012, 09:33

яфпкк писал(а): Почему верхняя средняя кнопка растягивается по горизонтали автоматически, при увеличении отступов у центральной, а левая средняя по вертикали - нет, хотя у обеих указаны
android:layout_width="wrap_content"
android:layout_height="wrap_content"
А я как-то не обратил внимания на это. Действительно нелогично.
Остается гадать, баг это или фича.
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение

Аватара пользователя
KamiSempai
Сообщения: 1339
Зарегистрирован: 17 фев 2012, 21:23
Откуда: Мордор

Re: Урок 7. Layout параметры для View-элементов.

Сообщение KamiSempai » 07 мар 2012, 21:11

Столкнулся с такой проблемой, если двум элементам задать ширину "wrap_content" и вес "1", то их размеры все равно распределяются не равномерно.
Больше места занимает тот элемент на котором длиннее текст.
Единственное, что я смог придумать, указать ширину одного элемента через абсолютное значение "dp". Но в этом случае прийдется делать отдельный лайот для ландшафтного вида.
Можно как-то решить эту проблему другим способом?
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.

smival
Сообщения: 2
Зарегистрирован: 12 май 2012, 09:45

Re: Урок 7. Layout параметры для View-элементов.

Сообщение smival » 12 май 2012, 11:44

KamiSempai писал(а):Столкнулся с такой проблемой, если двум элементам задать ширину "wrap_content" и вес "1", то их размеры все равно распределяются не равномерно.
Больше места занимает тот элемент на котором длиннее текст.
Единственное, что я смог придумать, указать ширину одного элемента через абсолютное значение "dp". Но в этом случае прийдется делать отдельный лайот для ландшафтного вида.
Можно как-то решить эту проблему другим способом?
поменяй на fill_parent

Аватара пользователя
KamiSempai
Сообщения: 1339
Зарегистрирован: 17 фев 2012, 21:23
Откуда: Мордор

Re: Урок 7. Layout параметры для View-элементов.

Сообщение KamiSempai » 12 май 2012, 18:19

smival писал(а):поменяй на fill_parent
Вот оно как. Спасибо, учту в будущем.
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.

Аватара пользователя
damager82
Администратор
Сообщения: 1383
Зарегистрирован: 07 янв 2012, 11:32
Контактная информация:

Re: Урок 7. Layout параметры для View-элементов.

Сообщение damager82 » 14 май 2012, 09:57

KamiSempai писал(а):
smival писал(а):поменяй на fill_parent
Вот оно как. Спасибо, учту в будущем.
Можно еще использовать "0dp". Гугл так и рекомендует. Ща дополню урок.
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: Урок 7. Layout параметры для View-элементов.

Сообщение rezak90 » 03 июл 2012, 13:08

как в TextView сделать ориентацию текста вертикальной? В гугле полно как то примеров но рабочего не нашел. Использую TextView в RelativeLayout.
R.id.team
Политика на форуме запрещена

Аватара пользователя
damager82
Администратор
Сообщения: 1383
Зарегистрирован: 07 янв 2012, 11:32
Контактная информация:

Re: Урок 7. Layout параметры для View-элементов.

Сообщение damager82 » 03 июл 2012, 17:41

rezak90 писал(а):как в TextView сделать ориентацию текста вертикальной? В гугле полно как то примеров но рабочего не нашел. Использую TextView в RelativeLayout.
Тут вполне рабочие решения, попробуйте: http://stackoverflow.com/questions/2888 ... in-android
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение

Kitty
Сообщения: 6
Зарегистрирован: 30 авг 2012, 16:56

Re: Урок 7. Layout параметры для View-элементов.

Сообщение Kitty » 30 авг 2012, 17:13

У меня нижние кнопки gravity = bottom right и gravity = bottom left наползли друг на друга, если указать fill_parent, они обе растягиваются на всю ширину экрана (одна на одной получается), мне почему-то казалось что они должны переносить свой текст на следующую строку и увеличиваться вверх - чтобы не мешать друг другу. Можно ли решить эту проблему? или нужен другой layout?

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: Урок 7. Layout параметры для View-элементов.

Сообщение rezak90 » 30 авг 2012, 20:23

Kitty писал(а):У меня нижние кнопки gravity = bottom right и gravity = bottom left наползли друг на друга, если указать fill_parent, они обе растягиваются на всю ширину экрана (одна на одной получается), мне почему-то казалось что они должны переносить свой текст на следующую строку и увеличиваться вверх - чтобы не мешать друг другу. Можно ли решить эту проблему? или нужен другой layout?
лучше кинь сюда лейаут файл, а то на словах трудно понять в чём проблема.
R.id.team
Политика на форуме запрещена

Kitty
Сообщения: 6
Зарегистрирован: 30 авг 2012, 16:56

Re: Урок 7. Layout параметры для View-элементов.

Сообщение Kitty » 31 авг 2012, 14:39

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

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<FrameLayout
android:id="@+id/frameLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="top|left"
android:text="gravity = top left">
</Button>
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="top|right"
android:text="gravity = top right">
</Button>
<Button
android:id="@+id/button3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|left"
android:text="gravity = bottom left">
</Button>
<Button
android:id="@+id/button4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|right"
android:text="gravity = bottom right">
</Button>
<Button
android:id="@+id/button5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="gravity = center">
</Button>
</FrameLayout>
</LinearLayout>
Все как в уроке, подозреваю, что если сделать надписи на кнопках длиннее, то и у вас получится то же самое

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: Урок 7. Layout параметры для View-элементов.

Сообщение rezak90 » 31 авг 2012, 17:18

вставил и себе этот код в лейаут, поначалу не было видно, поклацал смену экранов просмотра (вкладка GraphicLayout в верху) и всё появилось. Наверное глюк Eclips'a
R.id.team
Политика на форуме запрещена

Аватара пользователя
MeTeOpA
Сообщения: 85
Зарегистрирован: 07 мар 2012, 12:50

Re: Урок 7. Layout параметры для View-элементов.

Сообщение MeTeOpA » 02 сен 2012, 14:48

У меня такой вопрос. На экране находятся 2 картинки. Одна прижата к верху, другая к низу. на нижней картинке налеплен EditText. Вылазит клавиатура, и верхняя картинка, скрывается. Как сделать так чтобы были видны обе картинки?

Аватара пользователя
MeTeOpA
Сообщения: 85
Зарегистрирован: 07 мар 2012, 12:50

Re: Урок 7. Layout параметры для View-элементов.

Сообщение MeTeOpA » 03 сен 2012, 20:14

up! так сказать...

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: Урок 7. Layout параметры для View-элементов.

Сообщение rezak90 » 03 сен 2012, 21:44

MeTeOpA писал(а):У меня такой вопрос. На экране находятся 2 картинки. Одна прижата к верху, другая к низу. на нижней картинке налеплен EditText. Вылазит клавиатура, и верхняя картинка, скрывается. Как сделать так чтобы были видны обе картинки?
картинка пропадает или её замещает клавиатура?
R.id.team
Политика на форуме запрещена

pshogg
Сообщения: 6
Зарегистрирован: 05 сен 2012, 10:15

Re: Урок 7. Layout параметры для View-элементов.

Сообщение pshogg » 05 сен 2012, 10:33

Здравствуйте! До этого урока всё получалось хорошо (иногда находя ответы на форуме), а теперь возникла ситуация которую никак не могу победить! Итак: у меня при создании нового проекта, когда открываю main корень, по умолчанию создается RelativeLayout вместо LinearLayout, как вернуть умолчания? я уже и Eclipse сносил, заново всё настраивал, а воз и ныне..)

Ответить