iT邦幫忙

2021 iThome 鐵人賽

DAY 5
0

Fragment(碎片)是Activity中可重複利用的使用者介面,必須依附於Activity,因此Activity的生命週期會影響到Fragment的生命週期。

生命週期(lifecycle)

  • onCreate():產生新的Activity時呼叫,此週期用於定義Layout。
  • onRestart():從onStop()變成onStart()前呼叫。例如:使用者返回頁面。
  • onStart():在onCreate()或onRestart()後呼叫,此時畫面已可見。
  • onResume(): 畫面可與使用者互動時呼叫。
  • onPause():畫面暫停時叫。例如:使用者準備離開頁面,此週期用於將畫面資料保存
  • onStop():畫面停時呼叫。例如:使用者離開畫面,此时畫面已不可見。
  • onDestroy():在頁面銷毀時呼叫,此週期用於釋放占用的資源。
  • onCreateView()::產生新的Fragment時呼叫,此週期用於定義Layout
  • onActivityCreated():在onCreateView()後呼叫,此時Fragment與Activity已建立關聯
  • onDestroyView():當畫面移除與 Fragment相關聯的 Layout時呼叫。
  • onDetach():當Activity與Fragment 解除關聯時呼叫。

日誌(log)

Log等級詳細度:Verbose>Debug>Info>Warm>Error>Assert,除Assert的方法為Log.wtf()外,其他的方法皆為等級英文縮寫,如Debug的方法為Lod.d()

Log方法有兩個參數,分別為Tag與Massage

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
				//建立Warm等級的Log
				Log.w("MainActivity","onCreate")
    }
}

可在Android Studio下方的[Logcat]看到已紀錄的Log。

建立Fragment

  1. File → New → Kotlin File/class,輸入檔名後,會得到一個空白的類別檔案
  2. 撰寫該類別檔案使其繼承Fragment
class FirstFragment : Fragment(){
    override fun onCreateView(
        inflater: LayoutInflater,
        container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View? {
        //定義Fragment畫面
        return super.onCreateView(inflater, container, savedInstanceState)
    }

    override fun onActivityCreated(savedInstanceState: Bundle?) {
        super.onActivityCreated(savedInstanceState)
        //主程式寫下方
    }
}

滑動頁面(ViewPager)

使用者可透過左右滑動的手勢來切換頁面,必須搭配對應的PagerAdapter類別來實現滑動頁面的功能。


上一篇
Day 4 | Activity
下一篇
Day 6 | 訊息提示元件
系列文
社畜轉行之旅,30天Kotlin學習筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言