📅  最后修改于: 2023-12-03 15:13:20.170000             🧑  作者: Mango
Android Fragments 是 Android 应用程序中 UI 的一部分,它们允许在一个 Activity 中组合不同的 UI 组件并帮助设计大型屏幕应用程序,如平板电脑。
一个 Fragment 是一个可重复使用的 UI 组件,类似于 Activity,但是没有自己的生命周期。Fragment 必须依附于 Activity 才能工作。
一个应用程序可以包含许多 Fragment,它们可以将应用程序的不同部分分为更小、更易于管理的部分,并允许以更灵活的方式呈现 UI 元素。
Fragment 在其生命周期中经历了多个阶段,这些阶段分别是:
onAttach()
- 将 Fragment 附加到其父 Activity 时调用。onCreate()
- 创建 Fragment 时调用。onCreateView()
- 创建 Fragment 视图时调用。onActivityCreated()
- 确定与 Fragment 关联的 Activity 是否已经创建时调用。onStart()
- 将 Fragment 在屏幕上显示时调用。onResume()
- Fragment 变为活动状态时调用。onPause()
- 另一个 Activity 变为活动状态时调用。onStop()
- Fragment 不再可见时调用。onDestroyView()
- 销毁 Fragment 视图时调用。onDestroy()
- 销毁 Fragment 时调用。onDetach()
- 从其父 Activity 分离时调用。在 Android 应用程序中使用 Fragment 的过程如下:
创建 Fragment 需要定义一个继承自 Fragment 的类,并重写其生命周期方法来实现 Fragment 的 UI 元素和 UI 管理代码。
public class ExampleFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
// 创建 Fragment 视图
View view = inflater.inflate(R.layout.fragment_example, container, false);
// 返回 Fragment 视图
return view;
}
}
可以使用 FragmentManager 和 FragmentTransaction 将 Fragment 添加到 Activity 中。
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
ExampleFragment exampleFragment = new ExampleFragment();
transaction.add(R.id.fragment_container, exampleFragment);
transaction.commit();
在 Fragment 中可以使用常规的 UI 元素和管理方法来定义 UI。
public class ExampleFragment extends Fragment {
private Button button;
private TextView textView;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_example, container, false);
button = view.findViewById(R.id.button);
textView = view.findViewById(R.id.textview);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
textView.setText("Button Clicked");
}
});
return view;
}
}
Activity 可以获取 Fragment 视图中定义的 UI 元素并处理它们的事件。
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
ExampleFragment exampleFragment = new ExampleFragment();
transaction.add(R.id.fragment_container, exampleFragment);
transaction.commit();
// 处理 Fragment 中定义的按钮点击事件
exampleFragment.getButton().setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this, "Button Clicked", Toast.LENGTH_SHORT).show();
}
});
}
}
Android Fragments 是 Android 应用程序中的常用 UI 组件,它们允许在单个 Activity 中组合多个 UI 组件并帮助设计大型屏幕应用程序,如平板电脑。在使用 Fragment 时,开发人员必须注意 Fragment 的生命周期,并熟练掌握 Fragment 的添加、管理和与 Activity 交互的方法。