Fragment Android: Руководство с примерами и лучшими практиками
Фрагменты (fragments) - это составные части пользовательского интерфейса в Android, которые могут быть повторно использованы в разных активностях. Фрагменты похожи на небольшие под-активности, которые могут иметь свои собственные макеты и поведение.
Фрагменты используются для создания гибкого и масштабируемого интерфейса, который может быть адаптирован для разных размеров экрана и ориентаций. Они могут быть добавлены, удалены и заменены динамически во время выполнения приложения. Также фрагменты позволяют легко создавать многопанельные интерфейсы для больших устройств, таких как планшеты.
Каждый фрагмент имеет свой собственный жизненный цикл, который включает такие методы, как onCreate(), onCreateView(), onStart(), onResume(), onPause(), onStop() и onDestroy(). Фрагменты также могут получать аргументы, которые передаются им при их создании, и должны использовать методы setArguments() и getArguments() для этого.
Пример кода ниже показывает, как создать фрагмент, который отображает текстовое поле и кнопку. При нажатии на кнопку, текст в поле будет изменяться:
java
public class MyFragment extends Fragment {
private TextView textView;
private Button button;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_layout, container, false);
textView = view.findViewById(R.id.text_view);
button = view.findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
textView.setText("Button clicked!");
}
});
return view;
}
}
Здесь MyFragment - класс, наследующийся от Fragment. В методе onCreateView() мы раздуваем фрагмент из макета fragment_layout, инициализируем текстовое поле и кнопку и добавляем обработчик нажатия на кнопку. Если кнопка будет нажата, текст в поле будет изменен.
Такой фрагмент может быть динамически добавлен в активность с помощью FragmentManager:
java
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.add(R.id.fragment_container, new MyFragment());
fragmentTransaction.commit();
При этом R.id.fragment_container - это контейнер, в который будет добавлен фрагмент.
Фрагменты позволяют создавать модульные и полностью настраиваемые пользовательские интерфейсы в Android, что делает их важной частью разработки приложений.