Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Анд_Рей
4 / 4 / 0
Регистрация: 27.12.2009
Сообщений: 154
#1

DrawerLayout, include и fragment - Программирование Android

19.12.2015, 15:20. Просмотров 493. Ответов 1
Метки нет (Все метки)

Здравствуйте.
Ранее мне приходилось работать с фрагментами, в ручную создавать DrawerLayout(а точнее выдвигающуюся слева панель, как в vk приложении, например) и проблем с этим не испытывал.

Сегодня, создавая новый проэкт в Android Studio, выбрал шаблон 'Empty project' в который уже был включена та самая выдвигающаяся панель.Но вот что-то не могу разобраться с тем, как переключаться между фрагментами.

И так.
Автоматически были сгенерированы следующие слои:
main.xml
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    tools:openDrawer="start">
 
    <include
        layout="@layout/app_bar_main"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
 
    <android.support.design.widget.NavigationView
        android:id="@+id/nav_view"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:fitsSystemWindows="true"
        app:headerLayout="@layout/nav_header_main"
        app:menu="@menu/main_drawer" />
 
</android.support.v4.widget.DrawerLayout>
content_main.xml
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/fragment_container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    tools:context="com.dontsleep.andreyserdyuk.dontsleep.Main">
 
    <!-- моя кнопка -->
    <Button
        android:id="@+id/reset_alarm"
        android:layout_width="150dp"
        android:layout_height="150dp"
        android:background="@drawable/im_ok_button"
        android:gravity="center"
        android:text="I'm OK"
        android:textAlignment="center"
        android:textColor="#ffffff"
        android:textSize="18dp" />
 
</RelativeLayout>
и app_bar_main.xml
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    tools:context="com.dontsleep.andreyserdyuk.dontsleep.Main">
 
    <android.support.design.widget.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/AppTheme.AppBarOverlay">
 
        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="?attr/colorPrimary"
            app:popupTheme="@style/AppTheme.PopupOverlay" />
 
    </android.support.design.widget.AppBarLayout>
 
    <include android:id="@+id/main_content" layout="@layout/content_main" /> <!-- САМ ПРИПИСАЛ ID -->
 
</android.support.design.widget.CoordinatorLayout>
так-же в MainActivity был onNavigationItemSelected в него я приписал обработку нажатий по элементам из панели
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
@SuppressWarnings("StatementWithEmptyBody")
    @Override
    public boolean onNavigationItemSelected(MenuItem item) {
        Fragment _fragment = null;
        int id = item.getItemId();
        if (id == R.id.nav_playlist) {
            _fragment = new PlayListFragment();
        } else if (id == R.id.nav_settings) {
            _fragment = new SettingsFragment();
        }
 
        getFragmentManager()
                .beginTransaction()
                .replace(R.id.???????, _fragment) //КУДА СOВАТЬ СОЗДАННЫЙ ФРАГМЕНТ?
                .commit();
 
        DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
        drawer.closeDrawer(GravityCompat.START);
        return true;
    }
я попытался передать созданный фрагмент в main_content(app_bar_main.xml) и он содержимое фрагмента не заменяло, а добовлялось к уже созданному слою. От сюда и вопрос, куда и как передавать созданный фрагмент, что-бы он заменил настоящий слой, ну и сохранился в истории.
Спасибо за помощь
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.12.2015, 15:20     DrawerLayout, include и fragment
Посмотрите здесь:

DrawerLayout - Программирование Android
Подскажите в чем ошибка? Сделал все как сказано на оф сайте Но приложение крашится, с чем это может быть связанно? ...

Не видно DrawerLayout - Программирование Android
Здравствуйте! Помоги разобраться с DrawerLayout. Весь код на скринах 1-3. Проблема в отображении, а точнее не отображения ...

MapsActivity and DrawerLayout выбивает приложение - Программирование Android
Доброго времени суток. Создал MapsActivity как главное активити. И добавил туда код с шаблона NavigationActivity. Но при запуске сразу...

Fragment и ListView - Программирование Android
Задача необходимо сделать 2 фрагмента в 1-находится Listview в нем кнопки подгружаемые из файла, во 2 фрагменте описание как сделать так...

Работа с Fragment - Программирование Android
Ребят изучаю андройд с недавних пор, дошел до фрагментов, но не особо их понимаю, можете кому не лень норм инфы накидать на эту тему?)

OnActivityResult For Fragment - Программирование Android
Помогите решить проблему. У меня есть ListFragment который отображает фотки из бд и кнопка которая запускает стандартное приложения для...

Список из fragment - Программирование Android
Гуру, как подобное сделать? ЕСТЬ: Большой LinearLayout в который надо добавлять разные &quot;блоки&quot; Каждый &quot;блок&quot; оформлен как...

Fragment и RoboSpice - Программирование Android
Всем доброго времени суток, возникла проблема при использовании асинхронного запроса с помощью RoboSpice и инициализации фрагмента....

Fragment and context - Программирование Android
Есть шерлокбар. Два таба у него. Каждому табу привязан свой фрагмент через tabListener. Хочу чтобы в первом табе...

DialogFragment в Fragment - Программирование Android
можно ли визивать DialogFragment с Fragment???

SwipeRefreshLayout + Fragment - Программирование Android
Имеется mainActivity c &lt;android.support.v4.widget.SwipeRefreshLayout ...

set и get из fragment - Программирование Android
Здравствуйте! Есть 3 таба которые реализованы с помощью fragment. На табах есть кнопки, текстовые поля и т.д. Подскажите пожалуйста, как...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Mikalai
256 / 232 / 93
Регистрация: 11.01.2015
Сообщений: 651
19.12.2015, 16:54     DrawerLayout, include и fragment #2
Вот кино на эту тему
Yandex
Объявления
19.12.2015, 16:54     DrawerLayout, include и fragment
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru