0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

CoordinatorLayoutを使う(Snackbarをスワイプで消す)

Posted at

Androidアプリを趣味程度にいじっています。

ポップアップメッセージを出す手段として、Toastに替わってSnackbarというのがあるそうです。

短い時間の通知に加え、アクションを追加できるのはいいなと思って使うことにしましたが、googleのドキュメントそのままにやってみたら失敗したのでそれについてメモします。

Android Studio 4.1.2
Runtime version: 1.8.0_242-release-1644-b3-6915495 x86_64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
macOS 10.15.7

失敗

↑を参考に。『CoordinatorLayout を使用する』の章で「CoordinatorLayout にアタッチされている場合、Snackbar で次の追加機能が使えるようになります。……Snackbar をスワイプして消すことができる。…… 」とあるので書いてある通り、現在のレイアウトをCoordinatorLayoutでラッピングしました。

↑に載っているサンプルコードがこちら

<android.support.design.widget.CoordinatorLayout
        android:id="@+id/myCoordinatorLayout"
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <!-- Here are the existing layout elements, now wrapped in
             a CoordinatorLayout -->
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical">

            <!-- …Toolbar, other layouts, other elements… -->

        </LinearLayout>

    </android.support.design.widget.CoordinatorLayout>

するとandroid.support.design.widget.CoordinatorLayoutが赤文字になって、赤ランプマークを押すとAdd dependency androidx.coordinatorlayout:coordina...と出てきます。そこをクリックしたらgradleに

dependencies {
    ...
    implementation 'androidx.coordinatorlayout:coordinatorlayout:1.1.0'
    ...
}

と追加されました。しかしレイアウトファイルのcoordinatorLayoutのところは赤文字のままで、うまく動きません。

解決

色々調べてみたのですが解決方法がわからないでいたところ、とある解説記事に遭遇しました

これをよくみると、レイアウトファイルのところで

<androidx.coordinatorlayout.widget.CoordinatorLayout
 ...

としています。

この通りに書き換え、つまり

<androidx.coordinatorlayout.widget.CoordinatorLayout
        android:id="@+id/myCoordinatorLayout"
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <!-- Here are the existing layout elements, now wrapped in
             a CoordinatorLayout -->
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical">

            <!-- …Toolbar, other layouts, other elements… -->

        </LinearLayout>

    </androidx.coordinatorlayout.widget.CoordinatorLayout>

としたら動作するようになりました。スワイプで消すのも無事できるようになりました。

参考

0
1
1

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
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?