让viewgroup的高度wrap_content时不受Background影响的解决办法

getSuggestedMinimumHeight方法的默认实现如下:

protected int getSuggestedMinimumHeight() {
return (mBackground == null) ? mMinHeight : max(mMinHeight, mBackground.getMinimumHeight());
}

重写getSuggestedMinimumHeight方法,代码如下

package com.ivan.activitylifetest

import android.content.Context
import android.util.AttributeSet
import android.widget.LinearLayout

class MyLinearLayout : LinearLayout{
    constructor(context: Context) : super(context)

    constructor(context: Context, attrs: AttributeSet?) : super(context, attrs)

    constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : super(
        context,
        attrs,
        defStyleAttr
    )



    override fun getSuggestedMinimumHeight(): Int {
        return minimumHeight
    }
}

不重写LinearLayout,android:layout_height="wrap_content"的效果如下

让viewgroup的高度wrap_content时不受Background影响的解决办法_第1张图片

重写LinearLayout,android:layout_height="wrap_content"的效果如下

让viewgroup的高度wrap_content时不受Background影响的解决办法_第2张图片

备注

自定义view的教程

https://www.runoob.com/w3cnote/android-advance-custom-view.html

自定义viewgroup的教程

https://www.runoob.com/w3cnote/android-advance-viewgrouphtml.html

你可能感兴趣的:(Android,android,kotlin)