FrameLayout

| 02.05.2014

FrameLayout — один из видов компоновки элементов экрана, который используется достаточно часто. Главная особенность FrameLayout — это наличие только одного основного дочернего элемента, где все остальные наследники уже накладываются на него. Можно управлять видимостью элементов с помощью атрибута android:visibility.

Рассмотрим пример. Создадим FrameLayout с картинкой и элементом TextView, который будет накладываться на нее.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
 
    <ImageView
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:contentDescription="Image"
        android:scaleType="matrix"
        android:src="@drawable/img1" />
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"           
        android:layout_gravity="center_horizontal"
        android:padding="12dip"
        android:background="#AA000000"
        android:textColor="#ffffffff"
        android:text="Hello!"/>   
 
</FrameLayout>

FrameLayout с картинкой и элементом TextView

Рассмотрим пример, где мы скроем один из элементов с помощью атрибута android:visibility:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
 
    <ImageView
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:contentDescription="Image"
        android:scaleType="matrix"
        android:src="@drawable/img1" />
    <TextView
        android:id="@+id/text_view1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"           
        android:layout_gravity="center_horizontal"
        android:padding="12dip"
        android:visibility="gone"
        android:background="#AA000000"
        android:textColor="#ffffffff"
        android:text="Hello!"/>   
 
</FrameLayout>

Получим экран, где видна только картинка, а элемент TextView скрыт.

видна только картинка, а элемент TextView скрыт

Можно управлять видимостью элементов из Java кода с помощью метода setVisibility():

1
2
textView1.setVisibility(View.GONE);
textView1.setVisibility(View.VISIBLE);

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*