优化封装

This commit is contained in:
huanghaijie
2018-09-07 18:35:30 +08:00
parent 87fb7d7ef3
commit 4762d3c80c
2 changed files with 37 additions and 27 deletions

View File

@@ -15,20 +15,11 @@ class MainActivity : AppCompatActivity() {
setContentView(R.layout.activity_main) setContentView(R.layout.activity_main)
PageLayout.Builder(this)
.initPage(this)
.setEmpty(R.layout.layout_empty)
.setError(R.layout.layout_error)
.setLoading(R.layout.layout_loading)
.setOnRetryListener(object : PageLayout.OnRetryClickListener{
override fun onRetry() {
loadData()
}
})
.create()
page = PageLayout.Builder(this) page = PageLayout.Builder(this)
.initPage(ll) .initPage(ll)
.setEmpty(R.layout.layout_empty)
.setError(R.layout.layout_error)
.setLoading(R.layout.layout_loading_demo)
.setOnRetryListener(object : PageLayout.OnRetryClickListener{ .setOnRetryListener(object : PageLayout.OnRetryClickListener{
override fun onRetry() { override fun onRetry() {
loadData() loadData()

View File

@@ -120,7 +120,7 @@ class PageLayout : FrameLayout {
private lateinit var mTvError: TextView private lateinit var mTvError: TextView
private lateinit var mTvLoading: TextView private lateinit var mTvLoading: TextView
private lateinit var mBlinkLayout: BlinkLayout private lateinit var mBlinkLayout: BlinkLayout
private lateinit var mOnRetryClickListener: OnRetryClickListener private var mOnRetryClickListener: OnRetryClickListener? = null
constructor(context: Context) { constructor(context: Context) {
@@ -138,7 +138,7 @@ class PageLayout : FrameLayout {
mPageLayout.mError = mInflater.inflate(R.layout.layout_error, mPageLayout, false) mPageLayout.mError = mInflater.inflate(R.layout.layout_error, mPageLayout, false)
.apply { .apply {
mTvError = findViewById(R.id.tv_page_error) mTvError = findViewById(R.id.tv_page_error)
mTvError.setOnClickListener { mOnRetryClickListener.onRetry() } mTvError.setOnClickListener { mOnRetryClickListener?.onRetry() }
} }
mPageLayout.mLoading = mInflater.inflate(R.layout.layout_loading, mPageLayout, false) mPageLayout.mLoading = mInflater.inflate(R.layout.layout_loading, mPageLayout, false)
.apply { .apply {
@@ -153,11 +153,30 @@ class PageLayout : FrameLayout {
return this return this
} }
fun setError(error: Int): Builder { fun setError(errorView: View, errorClickTv: TextView): Builder {
mPageLayout.mError = mInflater.inflate(error, mPageLayout, false) mPageLayout.mError = errorView
mTvError = errorClickTv
errorClick(mTvError)
return this return this
} }
fun setError(errorView: View, errorClickId: Int): Builder {
mPageLayout.mError = errorView
mTvError = errorView.findViewById(errorClickId)
errorClick(mTvError)
return this
}
private fun errorClick(errorClickView: View) {
if (mOnRetryClickListener != null) {
errorClickView.setOnClickListener {
mOnRetryClickListener?.onRetry()
}
} else {
throw NullPointerException("Please setOnRetryClickListener")
}
}
fun setEmpty(empty: Int): Builder { fun setEmpty(empty: Int): Builder {
mPageLayout.mEmpty = mInflater.inflate(empty, null, false) mPageLayout.mEmpty = mInflater.inflate(empty, null, false)
return this return this