custom ViewGroup example?

后端 未结 2 1547
不知归路
不知归路 2020-12-14 03:41

I searched here on SO, on Google, on the android docs...

But I cannot find a single snippet of code with a example of custom viewgroup, I find at most some vague exp

相关标签:
2条回答
  • 2020-12-14 04:18

    I think the simplest example to look at is the source for AbsoluteLayout.java

    https://github.com/android/platform_frameworks_base/blob/master/core/java/android/widget/AbsoluteLayout.java

    You need to override onMeasure to measure the children and onLayout to position them.

    I have strikingly more complicated ViewGroup code I can share as well if you want.

    0 讨论(0)
  • 2020-12-14 04:23

    It't quite simple, all you need to do is to call super.onMeasure after calculate the exact dimentions of yout view.

    class ProportionalConstraintLayout @JvmOverloads constructor(
        context: Context,
        attrs: AttributeSet? = null,
        defStyleAttr: Int = 0
    ) : ConstraintLayout(context, attrs, defStyleAttr) {
        
        override fun onMeasure(widthMeasureSpec: Int, heightMeasureSpec: Int) {
    
            val exactWidth = 100 //do something to calculate the view widht
            val exactHeight = 100 //do something to calculate the view height
    
            setMeasuredDimension(exactWidth, exactHeight)
            super.onMeasure(
                MeasureSpec.makeMeasureSpec(exactWidth, MeasureSpec.EXACTLY),
                MeasureSpec.makeMeasureSpec(exactHeight, MeasureSpec.EXACTLY)
            )
    
        }
    
    }
    
    0 讨论(0)
提交回复
热议问题