• Android开发者的Anko使用指南(四)之Layouts


    为什么不使用xml绘制Andoird的UI?

    • 类型不安全
    • 非空不安全
    • xml迫使你在很多布局中写很多相同的代码
    • 设备在解析xml时会耗费更多的cpu运行时间和电池
    • 最重要的时,它允许任何代码重用

    简单案例

    val act = this
    val layout = LinearLayout(act)
    layout.orientation = LinearLayout.VERTICAL
    val name = EditText(act)
    val button = Button(act)
    button.text = "Say Hello"
    button.setOnClickListener {
        Toast.makeText(act, "Hello, ${name.text}!", Toast.LENGTH_SHORT).show()
    }
    layout.addView(name)
    layout.addView(button)
    
    verticalLayout {
        val name = editText()
        button("Say Hello") {
            onClick { toast("Hello, ${name.text}!") }
        }
    }
    

    findViewById()

    val name = find<TextView>(R.id.name)
    name.hint = "请输入你的姓名"
    name.onClick{Toast(name.text)}
    

    LayoutParams

    使用lparams()描述布局参数,其中宽高都是wrapContent

    linearLayout {
        button("Login") {
            textSize = 26f
        }.lparams(width = wrapContent) {
            horizontalMargin = dip(5)
            topMargin = dip(10)
        }
    }
    
    • horizontalMargin 设置左右的边距
    • verticalMargin 设置上下的边距
    • margin 设置四周的边距
  • 相关阅读:
    cnpm 安装和 command not found
    C#-弄懂泛型和协变、逆变
    2019年阅读
    ES5和ES6数组方法
    ASP.NET MVC中的捆绑和压缩技术
    markdown解析与着色
    Oauth2.0
    同源策略和跨域的解决方案
    windows常用命令
    Java 9 在win10环境搭建
  • 原文地址:https://www.cnblogs.com/dongshenjun/p/13964144.html
Copyright © 2020-2023  润新知