在AndroidStudio中添加模板代码使用快捷键快速生成代码,提高我们的开发效率
如下图示例,我们定义了ral作为模板代码的快捷缩写,在类中输入ral就可以根据编译器提示自动生成分页加载的模板代码
比如分页加载的模板代码:
private var cursor = 0 val itemBinding = ItemBinding.of<XXXItemViewModel>(BR.viewModel, R.layout.item_xxx) val itemBinding2: OnItemBind<ItemViewModel<*>> = OnItemBind { itemBinding, _, item -> when (item) { is XXXItemViewModel -> { itemBinding.set(BR.viewModel, R.layout.item_xxx) } else -> { itemBinding.set(BR.viewModel, R.layout.item_xxx) } } } val items = ObservableArrayList<ItemViewModel<*>>() val cmdRefresh = BindingCommand<RefreshLayout>(BindingConsumer { queryListData(it, true) }) val cmdLoadMore = BindingCommand<RefreshLayout>(BindingConsumer { queryListData(it, false) }) fun queryListData(refreshLayout: RefreshLayout?, isRefresh: Boolean = false) { cursor = if (isRefresh) { 0 } else { if (items.size > 0) { items[items.size - 1]?.liveItemBean?.real_stime_tamp ?: 0 } else { 0 } } repository.queryDataList( provider = lifecycleProvider, callback = object : ApiCallback<ClassifyLiveListBean>() { override fun onNext(bean: ClassifyLiveListBean?) { if (isRefresh) items.clear() bean?.list?.forEach { items.add(XXXItemViewModel(it)) } if ((bean?.list?.size ?: 0) < BASE_PAGE_SIZE) { if (isRefresh) { refreshLayout?.finishRefreshWithNoMoreData() } else { refreshLayout?.finishLoadMoreWithNoMoreData() } } else { if (isRefresh) { refreshLayout?.finishRefresh() } else { refreshLayout?.finishLoadMore() } } } override fun onError(e: ApiException?) { super.onError(e) if (isRefresh) { refreshLayout?.finishRefresh() } else { refreshLayout?.finishLoadMore() } } }) }