基础05-Navigation
简介
NavController
是中央导航 API。它会跟踪用户访问过的目的地,并允许用户在目的地之间移动。
获取NavController
- fragment
如果是NavHostFragment
1 | val navController = this.navController |
NavController
是中央导航 API。它会跟踪用户访问过的目的地,并允许用户在目的地之间移动。
NavController
如果是NavHostFragment
1 | val navController = this.navController |
1 | fun interface Observer<T> { |
onChanged
函数分派数据变化1 | /* synthetic access */ |
1 | public interface LifecycleObserver |
lifecycle.addObserver()
时,可以传入LifecycleEventObserver
或DefaultLifecycleObserver
,一个通过event
获取当前状态,一个通过不同的回调函数获取当前状态1 | Activity -- AccountAuthenticatorActivity |
在了解ViewModel之前,我们先来了解一下MVC, MVP, MVVM的发展Difference Between MVC, MVP and MVVM Architecture Pattern in Android
1 | interface ViewModelStoreOwner { |
ViewModelStoreOwner
的类会有一个viewModelStore
属性ViewModel
时会传递这个变量,具体传递方式在见by viewModels()ViewModelStoreOwner
的直接子类有: ComponentActivity, Fragment 和 NavBackStackEntryContext是抽象类,具体实现在ContextImpl,Application,Service,Activity都直接或间接继承自ContextWrapper,ContextWrapper通过代理的方式调用真正的ContextImpl。
1 | /** @hide */ |
创建 RelativeLayout 时,请务必为视图对象定义 ID。在相对布局中,同级视图可以定义其相对于通过唯一 ID 引用的另一个同级视图的布局。
ID 不必在整个树状结构中具有唯一性,但在您搜索的树状结构部分中必须是唯一的。它通常可能是整个树,因此最好尽可能使其具有唯一性。
findViewById
是View的方法1 | /** |
在flutter中,所有看得见的看不见的东西都是widget
根项目
和任意数量的子项目
。文件/目录名称 | 作用 |
---|---|
gradlew/gradlew.bat | Gradle 包装脚本 |
build.gradle(.kts) | 项目的 Gradle 构建脚本 |
settings.gradle(.kts) | Gradle 设置文件用于定义根项目名称和子项目 |
src | 项目/子项目的源码、资源 |
看源码的时候可以用uml图辅助理解
1 | public final class Message implements Parcelable { |