Fragment
Fragment អ្វីជា?
Fragment គឺជា UI component មួយដែលតំណាងឱ្យផ្នែកមួយនៃ Activity។ Fragment មានលក្ខណៈដូច "sub-activity" ដែលអាច reuse បាននៅក្នុង Activities ផ្សេងៗ។
🎯 ហេតុអ្វីត្រូវប្រើ Fragment?
ប្រយោជន៍ | ពិពណ៌នា |
---|---|
Reusability | អាចប្រើ Fragment តែមួយនៅក្នុង Activities ច្រើន |
Modularity | ចែក UI ជាផ្នែកតូចៗ ងាយគ្រប់គ្រង |
Adaptability | ងាយស្រួលប្រែប្រួល UI សម្រាប់ screen sizes ផ្សេងៗ |
Navigation | ជួយក្នុងការធ្វើ navigation complex |
🔄 Fragment Lifecycle
┌────────────────┐ │ onAttach() │ ──► Fragment attached ទៅ Activity └────────┬───────┘ │ ┌────────▼───────┐ │ onCreate() │ ──► Fragment បង្កើត └────────┬───────┘ │ ┌────────▼───────────┐ │ onCreateView() │ ──► បង្កើត UI layout └────────┬───────────┘ │ ┌────────▼───────────┐ │ onViewCreated() │ ──► View បង្កើតរួច (initialize views) └────────┬───────────┘ │ ┌────────▼───────┐ │ onStart() │ ──► Fragment visible └────────┬───────┘ │ ┌────────▼───────┐ │ onResume() │ ──► Fragment active └────────┬───────┘ │ [Running] │ ┌────────▼───────┐ │ onPause() │ ──► Fragment paused └────────┬───────┘ │ ┌────────▼───────┐ │ onStop() │ ──► Fragment stopped └────────┬───────┘ │ ┌────────▼────────────┐ │ onDestroyView() │ ──► បំផ្លាញ View └────────┬────────────┘ │ ┌────────▼───────┐ │ onDestroy() │ ──► បំផ្លាញ Fragment └────────┬───────┘ │ ┌────────▼───────┐ │ onDetach() │ ──► Fragment detached ពី Activity └────────────────┘
💻 បង្កើត Fragment
Java Code
Click "Run" to execute the Java code
📄 Fragment Layout (fragment_example.xml)
Java Code
Click "Run" to execute the Java code
🔗 បន្ថែម Fragment ទៅ Activity
មានវិធី 2 ក្នុងការបន្ថែម Fragment ទៅ Activity:
1️⃣ Static Fragment (នៅក្នុង XML)
Java Code
Click "Run" to execute the Java code
2️⃣ Dynamic Fragment (នៅក្នុង Java - Recommended)
Java Code
Click "Run" to execute the Java code
🔄 Fragment Transaction
Fragment Transactions ប្រើសម្រាប់ add, remove, replace fragments:
Operation | ពិពណ៌នា |
---|---|
add() |
បន្ថែម Fragment ថ្មី |
replace() |
ជំនួស Fragment មានស្រាប់ |
remove() |
យក Fragment ចេញ |
addToBackStack() |
បន្ថែមទៅ back stack (អាចចុច back) |
commit() |
អនុវត្ត transaction |
📡 ផ្ញើទិន្នន័យរវាង Fragment និង Activity
ពី Activity ទៅ Fragment:
Java Code
Click "Run" to execute the Java code
ពី Fragment ទៅ Activity:
Java Code
Click "Run" to execute the Java code
💡 Best Practice: ប្រើ Interface សម្រាប់ communication រវាង Fragment និង Activity ដើម្បី loose coupling!
✅ Fragment Best Practices
- ប្រើ
newInstance()
method សម្រាប់បង្កើត Fragment ជាមួយ arguments - មិនត្រូវ pass Activity context ទៅ Fragment constructor
- ប្រើ
getActivity()
ដើម្បីទទួល Activity context - Check
getActivity() != null
មុនពេលប្រើ Activity methods - សម្អាត resources នៅក្នុង
onDestroyView()