понедельник, 26 января 2015 г.

Компоновка FrameLayout

Компоновка FrameLayout является самым простой. Это в основном пустое пространство на экране, которое можно заполнить только единственным дочерним объектом View или ViewGroup. Все дочерние элементы FrameLayout прикрепляются к левому верхнему углу экрана и будут накладываться друг на друга.
Вот пример простейшей компоновки FrameLayout с одним дочерним элементом Button:
activity_main.xml
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_height="wrap_content" 
    android:layout_width="fill_parent"> 
 
    <Button 
        android:text="Button1" 
        android:id="@+id/Button1" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content"/> 
 
</FrameLayout>

Внешний вид экрана с компоновкой FrameLayout должен получиться таким:

В компоновке FrameLayout нельзя определить различное местоположение для дочернего объекта View. Последующие дочерние объекты View будут просто рисоваться поверх предыдущих, частично или полностью затеняя их, если находящийся сверху объект непрозрачен, поэтому единственный дочерний элемент для FrameLayout обычно растянут до размеров родительского контейнера и имеет атрибуты layout_width="fill_parent" и layout_height="fill_parent".
Добавим в файл activity_main еще один элемент Button:.
activity_main.xml
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 
 
    <Button 
        android:text="Button1" 
        android:id="@+id/Button1" 
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent"/> 
    <Button  
        android:text="Button2" 
        android:id="@+id/Button2" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content"/> 
     
</FrameLayout>

Вторая кнопка будет прорисована поверх первой и будет затенять ее:

Компоновка FrameLayout применяется довольно редко, т. к. не позволяет создавать сложные окна с множеством элементов. В практических приложениях эту компоновку обычно используют для создания оверлеев. Например, если у вас в окне выводится изображение, занимающее весь экран (это может быть  карта, загруженная с сервиса Google Map, или картинка с видеокамеры), можно сверху на изображении расположить элементы управления (в дочернем контейнере, если их несколько), скажем, кнопки для управления камерой и рамку видоискателя, а также выводить индикацию времени съемки и другую полезную информацию.

Комментариев нет:

Отправить комментарий