LoginSignup
2
0

More than 5 years have passed since last update.

Ankoのsnackbarを使おうとしてハマったところ

Last updated at Posted at 2019-04-21

Androidアプリ開発でもう少し簡潔に書けないかなーと探していたらAnkoというのを知って色々試しててsnackbar使おうとしたらハマった話です.

結論

anko-designなるものが必要でした.


dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation"org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    implementation 'com.android.support:appcompat-v7:28.0.0'
    implementation 'com.android.support.constraint:constraint-layout:1.1.3'

    implementation "org.jetbrains.anko:anko:$anko_version" //←これだけじゃ足りない
    implementation "org.jetbrains.anko:anko-design:$anko_version" //←これも必要

    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}

What's Anko?

JetBrainsが手掛けてるAndroidアプリケーションの開発を迅速かつ容易にするKotlin純正ライブラリで, コードを簡潔に保ち可読性を上げられるとのこと.
Ankoは4つのパートに分かれています.

  • Anko-Commons
  • Anko-Layouts
  • Anko-SQLite
  • Anko-Coroutines

公式を見る限り, snackbarはAnko-Commonsに入っている...ように見えます.

What's Anko Commons?

IntentとかDialogとかLoggingのヘルパー関数が色々入ってるツールボックスみたいなものです.
snackbarだと

snackbar

view.snackbar("I love Kotlin!")

こう書けます.
シンプルでいいですね.

なんでハマったの?

結論としてはWikiをちゃんと見てなかったからです.
READMEにはこう書いてあります.

Anko has a meta-dependency which plugs in all available features (including Commons, Layouts, SQLite) into your project at once.

このmeta-dependencyに該当する記述がこれ


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

「これを入れれば全部の機能が使えるんだなー」と思ったんですが, snackbarが使えない.
全部じゃないじゃんと思いながら再度くまなく見て回ると, Wikiに以下の記述が.


compile "org.jetbrains.anko:anko-design:$anko_version" // For SnackBars

snackbarを使うときはanko-designも追加で必要.
compileをimplementationに変えて、gradleに入れたら無事snackbarできました.

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0