美文网首页
Kotlin开发遇到的问题

Kotlin开发遇到的问题

作者: 码农朱同学 | 来源:发表于2018-11-30 19:42 被阅读0次

1,kotlinx.android.synthetic遇到的坑

循环addView(itemView) adapter中

都只正确初始化了第一个item, 不用这个就正常

当从后台返回前台时

当从后台返回前台时Kotlin莫名会闪退
override fun setLayout() {
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
}
kotlin.NotImplementedError: An operation is not implemented: not implemented

2,Kotlin与Butteknife兼容性

用kotterknife.bindView代替
https://github.com/JakeWharton/kotterknife

3,


    private inner class SearchViewTextListener(var emitter: ObservableEmitter<String>) : SearchView.OnQueryTextListener {
        override fun onQueryTextChange(newText: String?): Boolean {

            newText?.let { emitter.onNext(it) }
            return false
        }

        override fun onQueryTextSubmit(query: String?): Boolean {
            query?.let { emitter.onNext(it) }
            return false
        }
    }

        Observable.create(ObservableOnSubscribe<String> { e ->
            val listener = SearchViewTextListener(e)
            searchView.setOnQueryTextListener(listener)
        })
                .debounce(300, TimeUnit.MILLISECONDS)
                .filter { t -> t.isNotEmpty() }
                .switchMap { query ->
                    Observable.create(ObservableOnSubscribe<EventPickSearchResult> { observableEmitter ->
                        val requestSearch = requestSearch(query)
                        if (requestSearch != null) {
                            observableEmitter.onNext(requestSearch)
                        }
                        observableEmitter.onComplete()
                    })
                }
                .subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(object : DisposableObserver<EventPickSearchResult>() {
                    override fun onComplete() {
                        UIKeyboardHelper.hideKeyboard(searchView)
                        searchResultAdapter.setNewData(null)
                    }

                    override fun onError(e: Throwable) {
                    }

                    override fun onNext(result: EventPickSearchResult) {
                        if (!TextUtils.isEmpty(searchView.query)) {
                            searchResultList.visibility = View.VISIBLE
                            refreshLayout.visibility = View.GONE
                            updateSearchList(result)
                        } else {
                            searchResultList.visibility = View.GONE
                            refreshLayout.visibility = View.VISIBLE
                            plateid = 0
                            requestNetData(plateid)
                        }
                    }
                })
    }

相关文章

网友评论

      本文标题:Kotlin开发遇到的问题

      本文链接:https://www.haomeiwen.com/subject/lfhkcqtx.html