Android AsyncLayoutInflater异步加载xml布局文件,Kotlin
Kotlin
implementation "androidx.asynclayoutinflater:asynclayoutinflater:1.1.0-alpha01"
Kotlin
import android.os.Bundle
import android.util.Log
import android.view.View
import android.view.ViewGroup
import androidx.appcompat.app.AppCompatActivity
import androidx.asynclayoutinflater.view.AsyncLayoutInflater
class MyActivity : AppCompatActivity() {
companion object {
const val TAG = "fly/MyActivity"
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
Log.d(TAG, "onCreate开始...")
AsyncLayoutInflater(this).inflate(R.layout.activity_my, null, object : AsyncLayoutInflater.OnInflateFinishedListener {
override fun onInflateFinished(view: View, resid: Int, parent: ViewGroup?) {
Log.d(TAG, "onInflateFinished")
setContentView(view)
}
})
Log.d(TAG, "onCreate结束")
}
}
XML
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="hello,world!" />
<com.appdemo.MyLongTimeView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerCrop"
android:src="@mipmap/image" />
</LinearLayout>
Kotlin
import android.content.Context
import android.util.AttributeSet
import android.util.Log
import androidx.appcompat.widget.AppCompatImageView
class MyLongTimeView : AppCompatImageView {
companion object {
const val TAG = "fly/MyLongTimeView"
}
constructor(ctx: Context, attribute: AttributeSet) : super(ctx, attribute) {
Log.d(TAG, "开始sleep...")
Thread.sleep(6000)
Log.d(TAG, "sleep结束")
}
}