Kotlin / anko

Pleasant Android application development
Apache License 2.0
15.88k stars 1.29k forks source link

startMargin, endMargin, startPadding, endPadding #545

Open tateisu opened 6 years ago

tateisu commented 6 years ago

Does Anko supports startMargin, endMargin, startPadding, endPadding ?

wisnukurniawan commented 6 years ago

padding can be set inside view declaration, margin can be set inside lparams method.

       verticalLayout {
            verticalLayout {
                paddingStart = dip(8)
                paddingEnd = dip(8)
            }.lparams(width = matchParent, height = wrapContent) {
                marginEnd = dip(8)
                marginStart = dip(8)
            }
        }
tateisu commented 6 years ago

image

wisnukurniawan commented 6 years ago

ups sorry I'm wrong you right, that's from android SDK not from anko

tateisu commented 6 years ago

image also There is a blur in naming.

tateisu commented 6 years ago

for about paddingStart, I've prepare extension function.

var View.paddingStartCompat :Int
    get() = this.paddingStart
    set(start){
        setPaddingRelative(start,paddingTop,paddingEnd,paddingBottom)
    }

var View.paddingEndCompat :Int
    get() = this.paddingEnd
    set(end){
        setPaddingRelative(paddingStart,paddingTop,end,paddingBottom)
    }

fun View.setPaddingStartEnd(start:Int,end:Int ){
    setPaddingRelative(start,paddingTop,end,paddingBottom)
}

textView {
    paddingStartCompat =dip(2)
}
tateisu commented 6 years ago

I prepared extended properties to aid input completion for margin

var ViewGroup.MarginLayoutParams.startMargin : Int
    get() = marginStart
    set(start) {
        marginStart = start
    }

var ViewGroup.MarginLayoutParams.endMargin : Int
    get() = marginEnd
    set(end) {
        marginEnd = end
    }