18

Material design 网站提到了一个新的类似 Toast 的元素,称为 Snackbar:http ://www.google.com/design/spec/components/snackbars-and-toasts.html

Android L 预览版 SDK 文档(抱歉,无法链接,因为它只能下载)在类列表中没有提及 Snackbar,也没有在 Toast 类文档中作为修饰符提及。我是否遗漏了一些明显的东西,还是应该构建自己的 Snackbar.java?

4

6 回答 6

24

2015 年 5 月 29 日更新:

Google 发布了一个设计支持库,其中包括一个Snackbar和其他 Material Design 小部件。

原始答案中提到的 Snackbar 库现已弃用。

原始答案

我确信谷歌最终会将它包含在未来的 SDK 中,以及预览 SDK 中也缺少的浮动操作按钮。

正如@friedrich nietzche 指出的那样,我实现了一个库以将 a 包含Snackbar在您的项目中。

https://github.com/nispok/snackbar

希望能帮助到你!

于 2014-09-13T21:56:21.637 回答
4

FWIW,

L Developer Preview中似乎没有Snackbar实现。我还实现了一个Snackbar 库,目的是尽可能接近材料设计指南。谢谢。

于 2014-09-22T16:19:49.997 回答
3

Mabye在这里看看这个。 http://www.williammora.com/2014/08/snackbar-android-library.html

我猜原生版本最终会出现在 sdk 中。我同意这有点奇怪。

于 2014-09-07T08:49:10.220 回答
1

Snackbar 实际上只是一个有一些利润的面包块。当前形式的 Crouton 仅支持添加到 ViewGroup 的开始(第 0 项),但是您可以在我的 github上找到对 Crouton 的“strayan”增强功能 DownUnderMode 。请注意,官方 Crouton 库和 DownUnderMode 版本有点不同步(希望在 2058 年接受 DownUnderMode 拉取请求时修复)。

于 2015-03-17T06:29:12.080 回答
0

使用设计库,我们可以为 Android 2.1 及以后的所有版本实现。

这是工作示例代码http://www.feelzdroid.com/2015/06/snackbar-android-example-using-design-support-library.html

如果您需要任何帮助,请发表评论。

于 2015-07-14T06:22:41.127 回答
0

这是在android中实现snackbar的简单方法

步骤 1. 添加支持库 23 并使用

compile 'com.android.support:appcompat-v7:23.0.1'

步骤 2. 在您的活动文件中添加坐标布局

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


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

第 3 步。现在在 MainActivity.java 中添加以下代码来实现snackbar

public class MainActivity extends AppCompatActivity {

    CoordinatorLayout coordinatorLayout;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        coordinatorLayout = (CoordinatorLayout) findViewById(R.id.coordinatorLayout);
        ShowSnack();
    }

    public void ShowSnack() {
        Snackbar snackbar = Snackbar.make(coordinatorLayout, "Snackbar Label", Snackbar.LENGTH_LONG);
        snackbar.setAction("Action", new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(MainActivity.this, "Action", Toast.LENGTH_LONG).show();
            }
        });
        snackbar.setActionTextColor(Color.RED);
        View snackbarView = snackbar.getView();
        snackbarView.setBackgroundColor(Color.DKGRAY);
        TextView textView = (TextView) snackbarView.findViewById(android.support.design.R.id.snackbar_text);
        textView.setTextColor(Color.YELLOW);
        snackbar.show();
    }
}

希望这对你有用。

更多安卓教程请关注此博客:Trinity Tuts

于 2015-10-21T04:33:40.393 回答