Страница 1 из 6
Урок 7. Layout параметры для View-элементов.
Добавлено: 15 авг 2011, 03:00
damager82
На этом уроке мы:
- разбираемся в характеристиках экрана
- рассматриваем layout параметры (высота, ширина, отступ, гравитация, вес)
Click here to read this article!
Re: Урок 7. Layout параметры для View-элементов.
Добавлено: 31 янв 2012, 18:02
btx
Я честно пытался понять зачем нужны значения gravity fill_* и clip_*, но так и не понял. То, что написано про них в хелпе у меня не работает. Если у вас есть сведения по этому поводу – пишите в каменты.
Тут наглядное описание по использованию
http://android-pro.blogspot.com/2010/03 ... ayout.html
Re: Урок 7. Layout параметры для View-элементов.
Добавлено: 01 фев 2012, 16:41
damager82
Да, я смотрел этот материал. У меня не работает так как там нарисовано.
На материал аж от 4.10.2009. Возможно это просто рудименты, которые уже не работают, но оставлены для совместимости.
Re: Урок 7. Layout параметры для View-элементов.
Добавлено: 18 фев 2012, 20:11
VissarioN
Здравствуйте!
Я конечно только новичек в этом деле. Но кажется я понял для чего 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_* извиняйте!
Извените за кучу текста, но почему-то у меня не пашет спойлер.
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"
Re: Урок 7. Layout параметры для View-элементов.
Добавлено: 22 фев 2012, 09:33
damager82
яфпкк писал(а):
Почему верхняя средняя кнопка растягивается по горизонтали автоматически, при увеличении отступов у центральной, а левая средняя по вертикали - нет, хотя у обеих указаны
android:layout_width="wrap_content"
android:layout_height="wrap_content"
А я как-то не обратил внимания на это. Действительно нелогично.
Остается гадать, баг это или фича.
Re: Урок 7. Layout параметры для View-элементов.
Добавлено: 07 мар 2012, 21:11
KamiSempai
Столкнулся с такой проблемой, если двум элементам задать ширину "wrap_content" и вес "1", то их размеры все равно распределяются не равномерно.
Больше места занимает тот элемент на котором длиннее текст.
Единственное, что я смог придумать, указать ширину одного элемента через абсолютное значение "dp". Но в этом случае прийдется делать отдельный лайот для ландшафтного вида.
Можно как-то решить эту проблему другим способом?
Re: Урок 7. Layout параметры для View-элементов.
Добавлено: 12 май 2012, 11:44
smival
KamiSempai писал(а):Столкнулся с такой проблемой, если двум элементам задать ширину "wrap_content" и вес "1", то их размеры все равно распределяются не равномерно.
Больше места занимает тот элемент на котором длиннее текст.
Единственное, что я смог придумать, указать ширину одного элемента через абсолютное значение "dp". Но в этом случае прийдется делать отдельный лайот для ландшафтного вида.
Можно как-то решить эту проблему другим способом?
поменяй на fill_parent
Re: Урок 7. Layout параметры для View-элементов.
Добавлено: 12 май 2012, 18:19
KamiSempai
smival писал(а):поменяй на fill_parent
Вот оно как. Спасибо, учту в будущем.
Re: Урок 7. Layout параметры для View-элементов.
Добавлено: 14 май 2012, 09:57
damager82
KamiSempai писал(а):smival писал(а):поменяй на fill_parent
Вот оно как. Спасибо, учту в будущем.
Можно еще использовать "0dp". Гугл так и рекомендует. Ща дополню урок.
Re: Урок 7. Layout параметры для View-элементов.
Добавлено: 03 июл 2012, 13:08
rezak90
как в TextView сделать ориентацию текста вертикальной? В гугле полно как то примеров но рабочего не нашел. Использую TextView в RelativeLayout.
Re: Урок 7. Layout параметры для View-элементов.
Добавлено: 03 июл 2012, 17:41
damager82
rezak90 писал(а):как в TextView сделать ориентацию текста вертикальной? В гугле полно как то примеров но рабочего не нашел. Использую TextView в RelativeLayout.
Тут вполне рабочие решения, попробуйте:
http://stackoverflow.com/questions/2888 ... in-android
Re: Урок 7. Layout параметры для View-элементов.
Добавлено: 30 авг 2012, 17:13
Kitty
У меня нижние кнопки gravity = bottom right и gravity = bottom left наползли друг на друга, если указать fill_parent, они обе растягиваются на всю ширину экрана (одна на одной получается), мне почему-то казалось что они должны переносить свой текст на следующую строку и увеличиваться вверх - чтобы не мешать друг другу. Можно ли решить эту проблему? или нужен другой layout?
Re: Урок 7. Layout параметры для View-элементов.
Добавлено: 30 авг 2012, 20:23
rezak90
Kitty писал(а):У меня нижние кнопки gravity = bottom right и gravity = bottom left наползли друг на друга, если указать fill_parent, они обе растягиваются на всю ширину экрана (одна на одной получается), мне почему-то казалось что они должны переносить свой текст на следующую строку и увеличиваться вверх - чтобы не мешать друг другу. Можно ли решить эту проблему? или нужен другой layout?
лучше кинь сюда лейаут файл, а то на словах трудно понять в чём проблема.
Re: Урок 7. Layout параметры для View-элементов.
Добавлено: 31 авг 2012, 14:39
Kitty
Код: Выделить всё
<?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>
Все как в уроке, подозреваю, что если сделать надписи на кнопках длиннее, то и у вас получится то же самое
Re: Урок 7. Layout параметры для View-элементов.
Добавлено: 31 авг 2012, 17:18
rezak90
вставил и себе этот код в лейаут, поначалу не было видно, поклацал смену экранов просмотра (вкладка GraphicLayout в верху) и всё появилось. Наверное глюк Eclips'a
Re: Урок 7. Layout параметры для View-элементов.
Добавлено: 02 сен 2012, 14:48
MeTeOpA
У меня такой вопрос. На экране находятся 2 картинки. Одна прижата к верху, другая к низу. на нижней картинке налеплен EditText. Вылазит клавиатура, и верхняя картинка, скрывается. Как сделать так чтобы были видны обе картинки?
Re: Урок 7. Layout параметры для View-элементов.
Добавлено: 03 сен 2012, 20:14
MeTeOpA
up! так сказать...
Re: Урок 7. Layout параметры для View-элементов.
Добавлено: 03 сен 2012, 21:44
rezak90
MeTeOpA писал(а):У меня такой вопрос. На экране находятся 2 картинки. Одна прижата к верху, другая к низу. на нижней картинке налеплен EditText. Вылазит клавиатура, и верхняя картинка, скрывается. Как сделать так чтобы были видны обе картинки?
картинка пропадает или её замещает клавиатура?
Re: Урок 7. Layout параметры для View-элементов.
Добавлено: 05 сен 2012, 10:33
pshogg
Здравствуйте! До этого урока всё получалось хорошо (иногда находя ответы на форуме), а теперь возникла ситуация которую никак не могу победить! Итак: у меня при создании нового проекта, когда открываю main корень, по умолчанию создается RelativeLayout вместо LinearLayout, как вернуть умолчания? я уже и Eclipse сносил, заново всё настраивал, а воз и ныне..)