Kotlin鎬庝箞涓嶢ndroid Jetpack缁勪欢闆嗘垚浣跨敤
瑕佷笌Android Jetpack缁勪欢闆嗘垚浣跨敤Kotlin锛屽彲浠ユ寜鐓т互涓嬫楠よ繘琛岋細
- 鍦ㄩ」鐩殑
build.gradle
鏂囦欢涓坊鍔燡etpack缁勪欢鐨勪緷璧栥€備緥濡傦紝濡傛灉瑕佷娇鐢∟avigation缁勪欢锛屽彲浠ユ坊鍔犱互涓嬩緷璧栵細
implementation "androidx.navigation:navigation-fragment-ktx:2.3.5"
implementation "androidx.navigation:navigation-ui-ktx:2.3.5"
- 鍦ˋctivity鎴朏ragment涓娇鐢↗etpack缁勪欢鐨勭浉鍏崇被銆備緥濡傦紝濡傛灉瑕佷娇鐢∟avigation缁勪欢锛屽彲浠ュ湪Activity鎴朏ragment涓垱寤?code>NavController瀵硅薄骞朵娇鐢ㄥ畠鏉ュ鑸埌涓嶅悓鐨勭洰鐨勫湴锛?/li>
val navController = findNavController(R.id.nav_host_fragment)
navController.navigate(R.id.action_homeFragment_to_detailFragment)
- 浣跨敤Kotlin璇█鐨勭壒鎬ф潵绠€鍖栦唬鐮併€侹otlin鎻愪緵浜嗚澶氭柟渚跨殑璇硶鍜屽姛鑳斤紝鍙互甯姪鎮ㄦ洿杞绘澗鍦扮紪鍐橝ndroid搴旂敤绋嬪簭銆備緥濡傦紝鎮ㄥ彲浠ヤ娇鐢↘otlin鐨勬墿灞曞嚱鏁版潵绠€鍖栦唬鐮侊細
fun Fragment.showSnackbar(message: String) {
Snackbar.make(requireView(), message, Snackbar.LENGTH_SHORT).show()
}
- 浣跨敤Jetpack涓殑ViewModel鍜孡iveData鏉ュ鐞嗘暟鎹€俈iewModel鍜孡iveData鏄疛etpack涓敤浜庣鐞哢I鏁版嵁鍜岀敓鍛藉懆鏈熸劅鐭ョ殑缁勪欢锛屽彲浠ュ府鍔╂偍鏇村ソ鍦扮粍缁囦唬鐮佸苟閬垮厤鍐呭瓨娉勬紡闂銆?/li>
class MyViewModel : ViewModel() {
private val _data = MutableLiveData<String>()
val data: LiveData<String>
get() = _data
fun fetchData() {
// Fetch data from repository
_data.value = "Hello, Jetpack!"
}
}
閫氳繃涓婅堪姝ラ锛屾偍鍙互杞绘澗鍦颁笌Android Jetpack缁勪欢闆嗘垚浣跨敤Kotlin锛屽苟鍒╃敤瀹冧滑鎻愪緵鐨勫姛鑳芥潵鏋勫缓鏇村姞鍋ュ.鍜岀幇浠e寲鐨凙ndroid搴旂敤绋嬪簭銆?/p>