четверг, 26 февраля 2015 г.

Полосы прокрутки

Класс TextView использует собственную прокрутку и в принципе не требует добавления отдельных полос прокрутки, но применение видимых полос прокрутки вместе с TextView (или любым другим элементом или контейнером, размеры которого больше размера экрана мобильного устройства) улучшает внешний вид и повышает удобство использования приложения.

Полосы прокрутки в Android представляют элементы ScrollView и HorizontalScrollView, которые являются контейнерными элементами и наследуются от ViewGroup.


Элементы ScrollView и HorizontalScrollView — это контейнеры типа FrameLayout. Это означает, что в них можно расположить только одно дочернее представление. Этот дочерний элемент может, в свою очередь, быть контейнером со сложной иерархией объектов. В качестве дочернего элемента для полос прокрутки обычно используют LinearLayout с вертикальной или горизонтальной ориентацией элементов.

Элемент ScrollView, несмотря на свое название, поддерживает только вертикальную прокрутку, поэтому для создания вертикальной и горизонтальной прокрутки необходимо использовать ScrollView в сочетании с HorizontalScrollView. Обычно ScrollView используют в качестве корневого элемента, а HorizontalScrollView — дочернего.

Рассмотрим создание полос прокрутки на практике. Cоздайте новый проект ScrollsApp. Откройте файл компоновки main.xml и создайте структуру компоновки, разместив в ней ScrollView, HorizontalScrollView и TextView.
Файл компоновки main.xml
<ScrollView xmlns:android=
      "http://schemas.android.com/apk/res/android"
    android:id="@+id/scroll"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">

    <HorizontalScrollView
        android:id="@+id/scroll_hor"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">

        <TextView
            android:id="@+id/text"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textColor="#000000"
            android:background="#FFFFFF"
            android:textSize="24px"
            android:shadowDx="0"
            android:shadowDy="0"
            android:shadowRadius="0"
            android:shadowColor="#FFFFFF"
            android:isScrollContainer="true"/>

    </HorizontalScrollView>
</ScrollView>
В классе MainActivity в теле метода onCreate() создайте ссылку на элемент TextView, объявленный в XML-компоновке, и запишите в него методом setText() достаточно большой текст, который гарантированно не поместится в видимые размеры экрана устройства.
Файл класса окна приложения MainActivity.java
package com.samples.ui.scrolls;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class MainActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        TextView text = (TextView)findViewById(R.id.text);

        // Загружаем текст
        text.setText("..."); // Введите любой достаточно большой текст
    }
}
Выполните компиляцию проекта и запустите его на мобильном устройстве. Полосы прокрутки представляют собой тонкие линии справа или внизу, которые появляются при касании экрана пальцем или движении пальца по экрану.


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

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