Опубликован: 10.04.2014 | Уровень: для всех | Доступ: платный
Самостоятельная работа 4:

Создание многоэкранного приложения

< Лекция 4 || Самостоятельная работа 4: 12345 || Лекция 5 >

8.4 Создание приложения со слайдингом из шаблона

1. Создайте проект TabsAndSwipe. Обратите внимание: чтобы использовать стандартный шаблон активности Fixed Tabs + Swipe, вам необходимо при создании проекта указать Minimum Required SDK не меньше, чем API11, т.к. в более ранних версиях этот шаблон не поддерживается.

Создание приложения TabsAndSwipe

увеличить изображение
Рис. 8.7. Создание приложения TabsAndSwipe

Следующие три окна оставляем без изменений.

Далее в окне Blank Activity выбираем в графе Navigation Type.

Выбор шаблона Navigation Type

увеличить изображение
Рис. 8.8. Выбор шаблона Navigation Type

2. Посмотрите на структуру проекта: у вас появились два xml-файла в папке res\layout - activity_main.xml и fragment_main_dummy.xml.

3. Запустите приложение, чтобы убедиться, что все компилируется правильно.

4. Создайте три копии файла fragment_main_dummy.xml. Назовите их соответственно first_tab, second_tab и third_tab. Присвойте элементу TextView в каждом файле уникальный id. Можете поместить на экраны какие-набудь элементы, например картинки или надписи.

5. Теперь переходим к файлу MainActivity.java. Нас интересует класс

public static class DummySectionFragment extends Fragment
    

Делаем три копии данного класса со всем содержимым, называя их соответственно FirstActivity, SecondActivity, ThirdActivity.

6. Поменяйте в них следующие строки

View rootView = inflater.inflate(R.layout.fragment_main_dummy, container, false);
TextView dummyTextView = (TextView) rootView.findViewById(R.id.section_label);
    

Замените R.layout.fragment_main_dummy на R.layout.first и R.id.section_label на R.id.section_label1 соответственно.

7. Поменяйте строки-названия секций в файле strings.xml.

<string name="title_section1">Лента</string>
    <string name="title_section2">Фото</string>
    <string name="title_section3">Карта</string>
    

8. Теперь переходим к классу SectionsPagerAdapter(). Нас интересует его метод Fragment getItem(), именно его мы будем изменять. Чтобы при перелистывании менялось не только содержимое TextView, но и всего фрагмента, замените код этого метода на следующий:

        public Fragment getItem(int position) {
            // getItem is called to instantiate the fragment for the given page.
            // Return a DummySectionFragment (defined as a static inner class
            // below) with the page number as its lone argument.
            Fragment fragment=null;
            Bundle args;
            switch (position) {
                case 0:
                    fragment = new FirstFragment();
                    args = new Bundle();
                    args.putInt(FirstFragment.ARG_SECTION_NUMBER, position + 1);
                    fragment.setArguments(args);
                    break;
                case 1:
                    fragment = new SecondFragment();
                    args = new Bundle();
                    args.putInt(SecondFragment.ARG_SECTION_NUMBER, position + 1);
                    fragment.setArguments(args);
                    break;
                case 2:
                    fragment = new ThirdFragment();
                    args = new Bundle();
                    args.putInt(ThirdFragment.ARG_SECTION_NUMBER, position + 1);
                    fragment.setArguments(args);
                    break;
            }
            return fragment;
        }
    

9. Приложение готово, можно запускать.

Приложение TabsAndSwipe, запущенное на устройстве

увеличить изображение
Рис. 8.9. Приложение TabsAndSwipe, запущенное на устройстве

Задание для самостоятельного выполнения

Подумайте над собственным приложением, сочетающим различные возможности проектирования многооконных приложений, рассмотренные выше. Создайте прототип этого приложения и настройте его пользовательский интерфейс.

< Лекция 4 || Самостоятельная работа 4: 12345 || Лекция 5 >
Марат Нуриджанян
Марат Нуриджанян
По ссылкам, приведенным в ЛР№1, отсутствуют нужные для работы программмы. Что делать?
Владимир Каункин
Владимир Каункин
В самостоятельной работе 2 [0, 99] вместо [1, 100]
Андрей Суслов
Андрей Суслов
Казахстан
Дмитрий Кузнецов
Дмитрий Кузнецов
Россия, Санкт-Петербург