1. 程式人生 > 其它 >安卓基礎學習 Day25 |Fragment

安卓基礎學習 Day25 |Fragment

技術標籤:學習日誌

目錄

寫在前面的話

1、主要參考自:https://b23.tv/9q3R75
2、內容如果有不對的,希望可以指出或補充。
3、新知識。

一、概述

Fragment(碎片):主要是為了提高頁面間的切換效率。是一種(必須)嵌入在Activity中的UI片段,與Activity非常相似,不僅包含佈局,同時也具有自己的生命週期,但受Activity的生命週期所影響,也就是說Activity停止的時候,Activity中所有的Fragment都會被停止。一個Activity可以有多個Fragment,一個Fragment可以被多個Activity重用。

使用Fragment可以把螢幕劃分成幾塊,然後進行分組,進行模組化管理。

建議一個App使用一個Activity包含多個Fragment的形式來實現。

生命週期(轉↓):

一般,至少需要實現這幾個生命週期方法:onCreate()、onCreateView()、onPause()

二、建立

注意:因為Fragment是Android3.0版本後引入的,所以minSdk需要大於11。

1、基於模板建立-Fragment類、fragment佈局(fragment顯示內容的)

在Activity(活動)存在的前提中。

彈出的視窗。

2、建立

在Activity中使用Fragment時,可以通過兩種方式(一種是通過佈局檔案、一種是通過程式碼)

將Fragment新增到Activity中。

靜態載入一旦新增就不能在執行時刪除。

① 在activity佈局檔案裡宣告fragment-靜態

② 通過java程式碼將fragment新增到對應佈局中-動態

三、測試-滑動切換介面

功能:實現三個介面進行滑動切換。

1、【基於模板建立】三個Frament(Fragment1和fragment_1、Fragment2和fragment_2、Fragment3和fragment_3),其中佈局如下(其餘兩個同理)。

2、在主佈局中設定如下。

3、MainActivity.java

package com.example.testfragment;
import androidx.appcompat.app.AppCompatActivity; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentPagerAdapter; import androidx.viewpager.widget.ViewPager; import android.os.Bundle; import java.util.ArrayList; import java.util.List; public class MainActivity extends AppCompatActivity { private List<Fragment> fragmentList; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //獲取控制元件 ViewPager viewPager = findViewById(R.id.viewpager); //使用ViewPager需要介面卡 //建立集合 fragmentList = new ArrayList<>(); for (int i = 0; i < 10; i++) { fragmentList.add(new Fragment1()); fragmentList.add(new Fragment2()); fragmentList.add(new Fragment3()); } //介面卡 //getSupportFragmentManager碎片管理器 FragAdapter adapter = new FragAdapter(getSupportFragmentManager()); viewPager.setAdapter(adapter); } public class FragAdapter extends FragmentPagerAdapter{ public FragAdapter(FragmentManager fm) { super(fm); } @Override public Fragment getItem(int position) { return fragmentList.get(position);//到集合中獲取到資料 } @Override public int getCount() { return fragmentList.size(); } } }

4、效果如下

補充

1、Fragment基本概述

2、Androidx 中的 ViewPager 與 ViewPager2

3、ViewPager 全面總結