美文网首页
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