Предисловие
После изучения Java и Android в течение почти года результаты периода должны быть независимо заполнить клиент Android и обеспечить стабильность своей основной линейной версии. В течение периода я столкнулся с большим количеством ямы, и я также узнал много знаний Android с моим братом. Но люди всегда должны принять изменения и не делать себя слишком комфортно. Здесь мы суммируем наибольшее количество фрагментов, используемых в предыдущих пунктах.
Введение в фрагмент
Фрагмент можно понимать как поведение или часть пользовательского интерфейса в активности, и он должен быть вложен в деятельность. Но фрагмент имеет свой собственный независимый файл макета XML и имеет хорошую упаковку.
Создать фрагмент
Создайте фрагмент и создайте деятельность.
Файлы макета XML такие же, как и другие файлы макета.
<? Match_pareat "Android: Orientation =" vertical "> <TextView Android: id ="@+id /textView "Android: layout_width =" wrap_content "Android: la yout_height =" wrap_content "Android: Text =" @String /testView " / / / > <Кнопка Android: id = "@+id /button" Android: layout_width = "wrap_content" Android: Layout_height = "wrap_content" Android: Text = "@String /Button" /> < /linearlayout>
В коде Java, как правило, следующие методы жизненного цикла могут быть реализованы по мере необходимости: фрагмент:
1. Onattach (): Когда фрагмент зависит от деятельности, вы можете получить направление активности в этом методе для достижения связи между фрагментом и активностью.
2. Oncreate (): инициализируйте кадр.
3. OncreateView (): Система вызывает этот метод при рисовании пользовательского интерфейса в первый раз для фрагмента.
4. onActivityCreated (): После выполнения функции активности хоста вы можете выполнить собственный экземпляр виджета фрагмента и обработку бизнес -логики в этом методе.
5. ondestoryView (): вызовите, когда кадр начинает разрушаться.
6. OnStart (): звонок, когда фрагмент может быть виден.
Есть также много других функций обратного вызова, которые используются для манипулирования жизненным циклом фрагмента.
Жизненный цикл фрагмента
Каждый фрагмент имеет свой собственный набор методов обратного вызова жизненного цикла и обрабатывает свои собственные события пользователя. Соответствующий жизненный цикл показан на рисунке ниже:
Добавить фрагмент к активности
Прежде всего, вам необходимо обеспечить, чтобы Acitibity поддерживает фрагмент, поэтому активность обычно должна наследовать от фрагментирования. Обычно существует два метода добавления фрагмента к активности: статический и динамичный.
Статический метод добавляет фрагмент непосредственно в файл макета XML, как показано ниже:
<? Match_pareant "Android: baselinealInged =" false "Android: Orientation =" Horizontal "> <фрагмент Android: id ="@+id/первая "Android: name =" com. layout_height = "match_parent" Android: layout_weight = "1" /> <фрагмент Android: id = "@+id /second" Android: name = "com.example.se endfragment" Android: Layout_width = "0dp" Android: Layout_Height = "Match_parent" Android: Mayout_weight = "1" /> < /linearlayout>
Когда атрибут Android: имя в <Fragment> указывает класс создания фрагментов в макете, когда создается макет активности, он создал каждую кадр в файле макета и вызывает их, чтобы вызвать их, чтобы получить каждый для получения каждого фрагмента Полем Система непосредственно вставляет представление, возвращаемое расположением <Fragment> элемента
Примечание. Каждый фрагмент требует уникальной идентификации. Есть три способа предоставления идентификаторов для фрагмента: есть три способа:
Динамический метод
Используйте фрагментную транспортировку. Вы можете использовать API FragmentTranscation для управления фрагментом активности (например, добавление, удаление или замена фрагмента). Справочный код заключается в следующем:
FragmentManager FragmentManager = getFragmentManager () FragmentTransaction FragmentTraction = FragmentManager.BeginTraction ();
Первый параметр функции add () - это группа просмотра фрагмента, которая указана идентификатором ресурса (идентификатор ресурса). После изменения с помощью фрагментной транспортировки это должно вступить в силу с визуальными изменениями Commit ().
Фрагменты связи
Фрагменты не должны быть непосредственно сообщены, и взаимодействие между ними должно выполняться с помощью активности хоста. Есть три способа взаимодействия с фрагментом и кислотой:
1. Заявление создает фрагмент с параметрами.
2. Активность поддерживает ручку объекта фрагмента, который можно напрямую назвать общественным методом фрагмента через ручку.
3. Фрагмент может получить определенную ручку слушателя в функции Onattach.
Создать кадр с параметрами
В некоторых конкретных случаях фрагмент может потребовать конкретных параметров для инициализации. Поскольку фрагмент должен иметь только один конструктор женьшеня, вы можете рассмотреть возможность использования статического метода NewInstance для создания фрагмента с параметрами. Пример кода заключается в следующем:
Import Android.os.bundle; ;;
Вы можете просто загрузить параметр с параметрами в активности:
Фрагментная транзакция = getsupportfragmentmanager ().
Метод вызова фрагмента
Поскольку активность может получить встроенную ручку фрагмента, этот метод можно вызвать непосредственно через ручку фрагмента.
Открытый класс TestFragment Extends fragment {public void dosomething (String param) {// Делать что -то в фрагменте}}} В деятельности вы можете вызвать этот метод непосредственно через ручку объекта фрагмента:
Общественный класс Mainaction расширяет фрагментирование {@override public void oncreate (Savedancate) {super.oncreate (saveDinceState); Слушатель фрагментов
Если фрагмент должен делиться событиями с деятельностью, необходимо использовать этот метод. Фрагмент определяет интерфейс, и этот интерфейс реализован деятельностью. Активность интерфейса будет достигнута в методе onattach ().
Определенный код интерфейса в фрагменте выглядит следующим образом:
Import Android.support.V4.App.Fragment; Используйте для того, чтобы сделать общедоступный интерфейс OnIteMselectLister {public void onRSESiteMELECTECT (String Link);} // Хранить слушателя (деятельность), которые будут запущены после того, как фрагмент будет прикреплен @Override public void onattach (деятельность) {super.onattach (активность ); Слушатель.onrsSiteMELECT ("Некоторая ссылка");}}Реализовать этот интерфейс в деятельности:
Import.support.V4. DetailFragment);} // Теперь мы можем определить действие в Activit It, когда файлы событий фрагмента @Override public void onrseSitemElecelect (String Link) {if (fragment! );}}}