Skip to content

Commit

Permalink
simpleView 在 loading drawable没变化的时候 不重新来
Browse files Browse the repository at this point in the history
  • Loading branch information
guuguo committed Sep 27, 2018
1 parent a5072de commit 94ada63
Show file tree
Hide file tree
Showing 4 changed files with 49 additions and 29 deletions.
Binary file modified .idea/caches/build_file_checksums.ser
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package top.guuguo.myapplication.ui.fragment

import android.app.Activity
import android.graphics.Color
import android.view.View
import com.guuguo.android.drawable.CircleRunDrawable
import com.guuguo.android.lib.app.BaseCupertinoTitleActivity
import com.guuguo.android.lib.app.LBaseActivity
Expand All @@ -18,25 +19,7 @@ class TestFragment : LBaseFragment() {
override fun initView() {
super.initView()
search.searchClick = {
state.layoutRes=R.layout.widget_include_simple_empty_view1
state.showSimpleView().loading("加载中",CircleRunDrawable().apply {mRoundColor= Color.WHITE })
when (type) {
0 -> state.postDelayed({
state.restore()
}, 2000)
1->state.postDelayed({
state.showEmpty("不行了", R.drawable.empty_cute_girl_box)
}, 2000)
2->state.postDelayed({
state.showError("不行了")
}, 2000)
3->state.postDelayed({
state.showCustomView(R.layout.dialog_custom_warning)
}, 2000)
}
type++
if (type == 4)
type = 0
doit()

}
search.onBackClick = {
Expand All @@ -45,6 +28,38 @@ class TestFragment : LBaseFragment() {
btn_theme.setOnClickListener {
DialogFragment.intentTo(this)
}
btn_change.setOnClickListener {
doit()
}
}

val drawable = CircleRunDrawable().apply { mRoundColor = Color.WHITE }
fun doit() {
state.layoutRes = R.layout.widget_include_simple_empty_view1
state.showSimpleView().loading("加载中", drawable)
when (type) {
0 -> state.postDelayed({
state.showSimpleView().loading("加载中", drawable)
state.postDelayed({
state.restore()
}, 1000)
}, 1000)
1 -> state.postDelayed({
state.showEmpty("不行了", R.drawable.empty_cute_girl_box)
}, 1000)
2 -> state.postDelayed({
state.showError("网络异常,请稍候重试", "重试", listener = View.OnClickListener {
type = 2
doit()
}, imgRes = 0)
}, 1000)
3 -> state.postDelayed({
state.showCustomView(R.layout.dialog_custom_warning)
}, 1000)
}
type++
if (type == 4)
type = 0
}

companion object {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
android:layout_margin="10dp"
android:gravity="center"
android:text="找不到数据"
android:textColor="@color/white"
android:textSize="18sp" />

<TextView
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,22 +24,24 @@ class SimpleViewHolder(var view: View) {
fun loading(msg: String, loadingDrawable: Drawable = CircularDrawable().apply { light() }): SimpleViewHolder {
mImg.visibility = View.VISIBLE
mBtn.visibility = View.GONE
mImg.layoutParams.width=50.dpToPx()
mImg.requestLayout()
mImg.setImageDrawable(loadingDrawable)
if (loadingDrawable is Animatable)
if (loadingDrawable != mImg.drawable) {
mImg.layoutParams.width = 50.dpToPx()
mImg.requestLayout()
mImg.setImageDrawable(loadingDrawable)
}
if (loadingDrawable is Animatable && !loadingDrawable.isRunning)
loadingDrawable.start()
if(msg.isEmpty())
mTvText.visibility=View.GONE
if (msg.isEmpty())
mTvText.visibility = View.GONE
else
mTvText.visibility=View.VISIBLE
mTvText.visibility = View.VISIBLE

mTvText.text = msg
return this
}

fun state(text: String, imgRes: Int = 0, btnText: String? = "", listener: View.OnClickListener? = null): SimpleViewHolder {
mImg.layoutParams.width=100.dpToPx()
mImg.layoutParams.width = 100.dpToPx()
mImg.requestLayout()
if (imgRes == 0)
mImg.visibility = View.GONE
Expand All @@ -52,16 +54,17 @@ class SimpleViewHolder(var view: View) {
else {
mBtn.visibility = View.VISIBLE
mBtn.text = btnText
mBtn.setOnClickListener (listener)
mBtn.setOnClickListener(listener)
}
mTvText.text = text
return this
}

fun showError(text: String, btnText: String? = "", listener: View.OnClickListener? = null, imgRes: Int = R.drawable.widget_state_error) {
showState(text, btnText, listener, imgRes)
}

fun showEmpty(text: String, btnText: String? = "", listener: View.OnClickListener?=null, imgRes: Int=R.drawable.empty_cute_girl_box) {
fun showEmpty(text: String, btnText: String? = "", listener: View.OnClickListener? = null, imgRes: Int = R.drawable.empty_cute_girl_box) {
showState(text, btnText, listener, imgRes)
}

Expand All @@ -77,6 +80,7 @@ class SimpleViewHolder(var view: View) {
fun showLoading(message: String) {
loading(message)
}

fun Int.dpToPx(): Int {
return (this * Resources.getSystem().displayMetrics.density + 0.5f).toInt()
}
Expand Down

0 comments on commit 94ada63

Please sign in to comment.