53 lines
1.6 KiB
Kotlin
53 lines
1.6 KiB
Kotlin
package com.gh.base
|
|
|
|
import android.content.Context
|
|
import android.util.AttributeSet
|
|
import android.view.LayoutInflater
|
|
import android.view.View
|
|
import androidx.appcompat.app.AppCompatActivity
|
|
import com.gh.gamecenter.R
|
|
|
|
class CustomLayoutInflaterFactory(
|
|
private val mAppCompatActivity: AppCompatActivity
|
|
) : LayoutInflater.Factory2 {
|
|
|
|
override fun onCreateView(
|
|
parent: View?,
|
|
name: String,
|
|
context: Context,
|
|
attrs: AttributeSet
|
|
): View? {
|
|
|
|
val view: View?
|
|
|
|
try {
|
|
view = mAppCompatActivity.delegate.createView(parent, name, context, attrs)
|
|
?: mAppCompatActivity.onCreateView(parent, name, context, attrs)
|
|
?: mAppCompatActivity.layoutInflater.createView(name, null, attrs)
|
|
} catch (e: Exception) {
|
|
return null
|
|
}
|
|
|
|
val n = attrs.attributeCount
|
|
for (i in 0 until n) {
|
|
val attributeName = attrs.getAttributeName(i).toString()
|
|
if (attributeName.contains("background")) {
|
|
view?.setTag(TAG_BACKGROUND_ID, attrs.getAttributeValue(i))
|
|
} else if (attributeName.contains("textColor")) {
|
|
view?.setTag(TAG_TEXT_COLOR_ID, attrs.getAttributeValue(i))
|
|
}
|
|
}
|
|
|
|
return view
|
|
}
|
|
|
|
override fun onCreateView(name: String, context: Context, attrs: AttributeSet): View? {
|
|
return mAppCompatActivity.onCreateView(name, context, attrs)
|
|
}
|
|
|
|
companion object {
|
|
const val TAG_BACKGROUND_ID = R.string.background_id
|
|
const val TAG_TEXT_COLOR_ID = R.string.text_color_id
|
|
}
|
|
|
|
} |