API 21中的Snackbar

7
我正在尝试在我的应用程序中实现新的Snackbar,但是我做不到。首先,我从这个SnackBarSampleActivity下载了zip文件。
我解压缩它,然后将其导入Eclipse。现在我在styles.xml中的主题父项中得到一个错误获取父项...
我将其更改为android:Theme.Light,错误消失了。 我右键单击项目,在Properties/Android中检查isLibrary,再右键单击我的应用并在Properties/Android中添加库。最后,我粘贴代码以显示一个Snackbar,但是因为Snackbar不能被解决,所以出现错误。
请有人帮帮我!我快疯了,我做错了什么?
6个回答

40

使用新的Design Support Library,您可以使用官方的SnackBar小部件。

只需将此依赖项添加到您的app -> build.gradle中:

implementation 'com.android.support:design:28.0.0'

并使用类似以下的内容:

Snackbar.make(view, "Snackbar", Snackbar.LENGTH_LONG).show();

enter image description here

完整示例,使用 Kotlin

        val fab = findViewById(R.id.btn_signin) as Button
        fab.setOnClickListener(View.OnClickListener { view ->
            Snackbar.make(view, "FloatingActionButton is clicked", Snackbar.LENGTH_INDEFINITE)
                    .setAction("Action", null).show()
        })

这也适用于FloatingActionButton吗? - Raghunandan
它是http://developer.android.com/reference/android/support/design/widget/FloatingActionButton.html。 - Raghunandan
@Raghunandan 是的,它可以与官方的 FAB 协同工作。 - Gabriele Mariotti

11

由于Eclipse的ADT插件不再处于积极开发阶段,建议您尝试使用Android Studio。

在Android Studio中,您只需要在build.gradle依赖项中添加一行compile 'com.nispok:snackbar:2.6.1'即可。

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:21.0.2'
    compile 'com.nispok:snackbar:2.6.1'
}

就是这样。


我想我会试一试。总的来说,它是否类似于Eclipse? - MattButtMatt
当然,它比Eclipse更好,例如自动完成和提取功能,并且现在是官方IDE。 - bjiang
你试过了吗?如果有效,请将此答案标记为最佳,谢谢。 - bjiang
今天晚些时候我会尝试一下,如果它有效的话,我会标记你的答案,不用担心 :) - MattButtMatt

6
如果在Eclipse中遇到“未解析的类型”问题,与 Snackbar 有关,则可以尝试以下方法:
1.右键单击项目-> BuildPath-> Configure Buildpath。 2.单击“Libraries”选项卡,然后单击“Add external Libraries”。 3.选择{adt路径} / sdk / extras / android / support / design / libs并选择android-support-design.jar,然后单击“打开”以添加此库。 4.单击“确定”。 完整界面如下图所示:Final Window

1
请将以下代码添加到 build.gradle 文件中。
implementation 'com.android.support:design:28.0.0'

之后点击“立即同步”按钮,它将起作用。


你能否详细解释一下你所做的事情? - KUSHA B K

0

针对Eclipse开发人员

  1. 按照github中给出的说明导入SnackBar项目
  2. 右键单击java文件夹,然后单击构建路径>添加为源文件夹
  3. 添加以下行/更改SnackBar项目的AndroidManifest.xml如下:

    <uses-sdk android:minSdkVersion="7"
        android:targetSdkVersion="22"/>
    <application />
    

package="com.nispok.snackbar"

  1. 将以下依赖项添加到 SnackBar 项目中

android-support-v7-appcompat: 21
android-support-v7-recyclerview: 21

  1. 最后在项目属性中将项目构建目标设置为 API 22。

这样就可以为您工作了,祝您编码愉快。


0

在 build.gradle(Module: app)文件的 dependencies 中添加以下内容:

implementation 'com.android.support:design:28.0.0'

或者

implementation 'com.dmitrymalkovich.android:material-design-dimens:1.4'

完整代码:

dependencies {
    implementation 'com.android.support:design:28.0.0'
}

或者

dependencies {
    implementation 'com.dmitrymalkovich.android:material-design-dimens:1.4'
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接