一、Fragment是什麼
Fragment 是 Android 3.0(API 級別11)引入的一種新的組件類型,也是 Android 系統 UI 的基本組成部分之一。Fragment 可以理解為 Activity 中的「模塊」,每個 Fragment 可以擁有自己的布局文件、邏輯代碼與生命周期等特點。相比 Activity,它更加輕量級,可以方便地再 Activity 中添加、移除和替換。
二、為什麼使用Fragment
使用 Fragment 可以讓我們在單個 Activity 中擁有更多模塊,每個模塊可以擁有自己的 UI 界面和邏輯處理。舉個例子,我們在一個新聞 App 的某個 Activity 中可以使用一個 Fragment 顯示新聞列表,使用另外一個 Fragment 顯示新聞詳情,用戶可以通過點擊列表項切換兩個 Fragment 的顯示,這樣可以提高應用程序的靈活性和用戶體驗。
三、如何使用Fragment
1. 創建 Fragment
我們可以通過使用 Android Studio 提供的模板來創建一個新的 Fragment。在 Android Studio 中,依次選擇 File -> New -> Fragment -> Fragment (Blank),然後在彈出的對話框中設置名字、布局等屬性即可。
public class MyFragment extends Fragment {
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_my, container, false);
//TODO: add logic code here
return rootView;
}
}
其中,onCreateView() 方法用於載入 Fragment 的布局文件,並返回一個對應的視圖對象。在上面的代碼中,我們通過 inflate() 方法將 fragment_my.xml 布局文件載入到內存中,並將其作為根視圖返回。
2. 在 Activity 中使用 Fragment
在 Activity 中使用 Fragment 幾乎是一樣的,我們需要在 Activity 中添加一個 FrameLayout 控制項,用於承載 Fragment。然後,在 Activity 的 onCreate() 方法中通過 FragmentManager 將 Fragment 添加到 FrameLayout 中即可。
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getSupportFragmentManager().beginTransaction().add(R.id.container, new MyFragment()).commit();
}
}
其中,getSupportFragmentManager() 方法返回 Activity 中的 FragmentManager 對象,通過 beginTransaction() 方法開啟一個事務,並通過 add() 方法將 Fragment 添加到 FrameLayout 中。
3. 在 Fragment 中使用其他 Fragment
在 Fragment 中使用其他 Fragment 也很簡單,我們只需要在 Fragment 中創建另外一個 Fragment,並使用 getChildFragmentManager() 方法獲取當前 Fragment 中的 FragmentManager 對象,然後使用 beginTransaction() 方法開啟一個事務,並通過 add() 方法將 Fragment 添加到當前 Fragment 的布局中即可。
public class MyFragment extends Fragment {
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_my, container, false);
//TODO: add logic code here
getChildFragmentManager().beginTransaction().add(R.id.container, new OtherFragment()).commit();
return rootView;
}
}
四、總結
本文介紹了如何使用 Fragment,包括創建 Fragment、在 Activity 中使用 Fragment、在 Fragment 中使用其他 Fragment 等。希望能夠對大家使用 Android 開發有所幫助。
原創文章,作者:ZPKJ,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/146983.html