Урок 105. Android 3. Fragments. Динамическая работа
Урок 105. Android 3. Fragments. Динамическая работа
В этом уроке:
- динамически работаем с фрагментами
Click here to read this article!
- динамически работаем с фрагментами
Click here to read this article!
Последний раз редактировалось damager82 23 май 2017, 22:07, всего редактировалось 6 раз.
Re: Урок 105. Android 3. Fragments. Динамическая работа
Добрый день! Столкнулась с такой проблемой: Есть action bar, вкладки, в каждой вкладке должно быть много фрагментов, но при переходе с вкладки на вкладку происходит наложение фрагментов. Может быть, вы знаете, как лучше организовать работу с фрагментами в этом случае?
Re: Урок 105. Android 3. Fragments. Динамическая работа
Возможно вы используете add вместо replace. В этом случае фрагменты накладываются друг на друга.
Re: Урок 105. Android 3. Fragments. Динамическая работа
Если пользоваться библиотекой support.v4 (чтобы приложение с фрагментами запускалось на старых андроидах (начиная с 1.6)) то при попытке скомпилировать пример из урока появится ошибка:
Обойти эту ошибку помогает использование getSupportFragmentManager()
и главная активити в таком случае дожна объявляться как public class MainActivity extends FragmentActivity
(даже при том, что в импортах стоит только import android.support.v4.app.FragmentTransaction;)Type mismatch: cannot convert from android.app.FragmentTransaction to android.support.v4.app.FragmentTransaction
Обойти эту ошибку помогает использование getSupportFragmentManager()
и главная активити в таком случае дожна объявляться как public class MainActivity extends FragmentActivity
Re: Урок 105. Android 3. Fragments. Динамическая работа
Да, код примеров не предназначен для запуска с библиотекой совместимости. Об этом будет отдельный урок.warner писал(а):Если пользоваться библиотекой support.v4 (чтобы приложение с фрагментами запускалось на старых андроидах (начиная с 1.6)) то при попытке скомпилировать пример из урока появится ошибка:(даже при том, что в импортах стоит только import android.support.v4.app.FragmentTransaction;)Type mismatch: cannot convert from android.app.FragmentTransaction to android.support.v4.app.FragmentTransaction
Обойти эту ошибку помогает использование getSupportFragmentManager()
и главная активити в таком случае дожна объявляться как public class MainActivity extends FragmentActivity
Re: Урок 105. Android 3. Fragments. Динамическая работа
Люди, если кто-то разбирался с примером на сайте девелоперов http://developer.android.com/reference/ ... gment.html
что такое там a_item? (поиском по страничке легко находится). Никак не пойму откуда взялось и почему на эту штуку меняется фрагмент?
что такое там a_item? (поиском по страничке легко находится). Никак не пойму откуда взялось и почему на эту штуку меняется фрагмент?
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Урок 105. Android 3. Fragments. Динамическая работа
Что-то никто не посещает, но все равно спрошу по этому же примеру..http://developer.android.com/guide/comp ... ml#Example
там написано, что один и тот же код можно запускать в виде фрагмента и в виде активити. Так вот мало того, что данный пример устарел, у меня еще он категорически ругается на попытку запустить новый инстанс фрагмента в качестве активити вот тут:
там написано, что один и тот же код можно запускать в виде фрагмента и в виде активити. Так вот мало того, что данный пример устарел, у меня еще он категорически ругается на попытку запустить новый инстанс фрагмента в качестве активити вот тут:
Код: Выделить всё
// Otherwise we need to launch a new activity to display
// the dialog fragment with selected text.
Intent intent = new Intent();
intent.setClass(getActivity(), DetailsActivity.class);
intent.putExtra("index", index);
>>>>startActivity(intent);
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Урок 105. Android 3. Fragments. Динамическая работа
Походу баг. Здесь он тоже фигурирует - http://developer.android.com/guide/comp ... ments.htmlOlivka писал(а):Люди, если кто-то разбирался с примером на сайте девелоперов http://developer.android.com/reference/ ... gment.html
что такое там a_item? (поиском по страничке легко находится). Никак не пойму откуда взялось и почему на эту штуку меняется фрагмент?
А в указанном ими файле FragmentLayout.java, который у меня нашелся, нет никакого a_item.
Re: Урок 105. Android 3. Fragments. Динамическая работа
DetailsActivity - это у вас Acvtivity? В манифесте прописали его?Olivka писал(а):ругается на попытку запустить новый инстанс фрагмента в качестве активити вот тут:
Код: Выделить всё
// Otherwise we need to launch a new activity to display // the dialog fragment with selected text. Intent intent = new Intent(); intent.setClass(getActivity(), DetailsActivity.class); intent.putExtra("index", index); >>>>startActivity(intent);
Какую конкретно ошибку выдает?
Re: Урок 105. Android 3. Fragments. Динамическая работа
Уже разобралась. Затупила сильно! Мне нужен был целый класс активити еще один, чтобы завернуть в него вызов этого куска фрагмента.
Мне вот еще что интересно.. а у фрагмента может быть свое меню? кнопочки там сверху и все такое..
Мне вот еще что интересно.. а у фрагмента может быть свое меню? кнопочки там сверху и все такое..
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Урок 105. Android 3. Fragments. Динамическая работа
Он может свои пункты в ActionBar добавлять. Урок 112.Olivka писал(а):у фрагмента может быть свое меню? кнопочки там сверху и все такое..
Re: Урок 105. Android 3. Fragments. Динамическая работа
Ага, спасибо! уже читаю
Почитала, кстати, что след. урок будет про v4. Уже интересно, т.к. у меня есть активити с фрагментами, с которыми пришлось помучиться, в частности потому, что нужно было импортировать v4. Зачем тогда нужна обычная - не ясно, может, для старых версий..? В общем, жду.
Почитала, кстати, что след. урок будет про v4. Уже интересно, т.к. у меня есть активити с фрагментами, с которыми пришлось помучиться, в частности потому, что нужно было импортировать v4. Зачем тогда нужна обычная - не ясно, может, для старых версий..? В общем, жду.
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Урок 105. Android 3. Fragments. Динамическая работа
Сории, постирала сообщения. Сделала.
Последний раз редактировалось Foenix 29 ноя 2012, 01:15, всего редактировалось 1 раз.
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Урок 105. Android 3. Fragments. Динамическая работа
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Урок 105. Android 3. Fragments. Динамическая работа
Подскажите, есть основной лэйаут
Когда в центральный фрагмент помещаю контейнер с ListView
содержимое наползает на верхний и нижний фрагменты.
Как сделать, чтобы список обрезало по границе центрального фрагмента?
Код: Выделить всё
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white"
tools:context=".Quiz" >
<FrameLayout
android:id="@+id/headerFragment"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true" >
</FrameLayout>
<FrameLayout
android:id="@+id/mainFragment"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_centerVertical="true" >
</FrameLayout>
<FrameLayout
android:id="@+id/footerFragment"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true" >
</FrameLayout>
</RelativeLayout>
Код: Выделить всё
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_horizontal"
android:orientation="horizontal"
android:scrollbars="horizontal" >
<ListView
android:id="@+id/groupsList"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:scrollbars="horizontal" >
</ListView>
</RelativeLayout>
Как сделать, чтобы список обрезало по границе центрального фрагмента?
Re: Урок 105. Android 3. Fragments. Динамическая работа
Добавьте в mainFragment, что он должен быть ниже (below) чем headerFragment и выше (Above) чем footerFragment.
Re: Урок 105. Android 3. Fragments. Динамическая работа
Пробовал так, центральный фрагмент вообще не отображается.
Зная высоту нижнего фрагмента, задал центральному bottom margin, все красиво, но вылезает другой глюк - при прокрутке списка невидимые до этого элементы отрисовываются с содержимым спрятавшихся при прокрутке.
Зная высоту нижнего фрагмента, задал центральному bottom margin, все красиво, но вылезает другой глюк - при прокрутке списка невидимые до этого элементы отрисовываются с содержимым спрятавшихся при прокрутке.
Re: Урок 105. Android 3. Fragments. Динамическая работа
А вот подскажет мне кто, пытаюсь всё воссоздать по образцу, но немного под свой проект запилить. Но getSupportFragmentManager() возвращает всегда null... Походу не срабатывает инфлэйт. Но не могу понять, в чём дело
Соответственно, если пытаюсь получить доступ к любым вьюшкам фрагмента - то вылетает Exception, так как к самому фрагменту я так и не подключился
Соответственно, если пытаюсь получить доступ к любым вьюшкам фрагмента - то вылетает Exception, так как к самому фрагменту я так и не подключился
Re: Урок 105. Android 3. Fragments. Динамическая работа
Метод add не позволяет повторно загрузить тот же фрагмент (например, если повторно нажать кнопку "Add", то приложение вылетает с ошибкой и в логах пишет что фрагмент уже загружен). Мудрил мудрил с проверкой и понял, что проще вместо add использовать replace. Логика у replace судя по описанию такая, что сначала из контейнера все удаляется, а потом загружается нужный фрагмент. По-моему, одни плюсы: не будет наслоений, не нужно городить проверки всякие. Может есть какой то более правильный способ?
Re: Урок 105. Android 3. Fragments. Динамическая работа
если вы внимательно посмотрите туториалы и семплы то увидите что везде используется replace так как он замещает фрагмент фрагментом и предыдущий уходит в "сон" тем самым не давай по себе кликать
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена