Nearest Individual Technology To You

気の迷いで開設したので気の迷いで更新します。

【Kotlin】Androidのレイアウト構築にXMLが要らなくなる【Anko】

今回はもはや自分のための備忘録。

AndroidStudioでレイアウト構築するときはXMLファイル使ってたのですが、
Ankoというものを使えば楽に記述できるらしいです。
github.com
↑公式サイト




Ankoを使うためには、まず
[設定]→[プラグイン]→[JetBrainsプラグインのインストール]→[Anko Support]
からインストールする必要があります。

次に、app/build.gradle中のdependenciesに以下の記述をします。

compile "org.jetbrains.anko:anko:$anko_version"

その他、公式サイトを参考に必要な記述を同じ場所に加えていきます。
自分の場合は(というかほとんどの場合かな?)appcompat v7を使っているので、

compile "org.jetbrains.anko:anko-appcompat-v7:$anko_version"

を追記しました。

次に、build.gradle(プロジェクト)のbuildscript直下に、

ext.anko_version='0.10.4'

を追記します。
'0.10.4'の部分は、自分の使うバージョンを入れてください。
なお、バージョンは
[設定]→[プラグイン]の画面で確認できます。

ここでgradleの同期を行えば準備完了です。

次に、.klファイルの方にレイアウトを記述していきます。

override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        verticalLayout {
            val name = editText()
            button("konnichiwa") {
                onClick { toast("konnichiwa, ${name.text}!") }
            }
        }
    }

と記述すれば、
縦にeditTextとbuttonを並べることができます。
なお、この際

import org.jetbrains.anko.editText
import org.jetbrains.anko.button
import org.jetbrains.anko.sdk25.coroutines.onClick
import org.jetbrains.anko.toast
import org.jetbrains.anko.verticalLayout

これらをインポートする必要があります。

詳しい説明はしませんが(というかできませんが・・・。)
見て分かるようにIDの取得などをする必要がなく、簡単にタップ時の挙動なども設定できるのでかなり便利です。