是否有Android L中的Snackbars代码或者我们是否希望自己实现它们?

时间:2014-09-02 23:00:14

标签: android android-5.0-lollipop android-toast material-design

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

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

6 个答案:

答案 0 :(得分:24)

更新2015-05-29:

Google发布了一个Design Support Library,其中包含Snackbar和其他Material Design小部件。

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

原始回答

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

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

https://github.com/nispok/snackbar

希望它有所帮助!

答案 1 :(得分:4)

FWIW,

L Developer Preview似乎没有Snackbar实施。我还实施了一个Snackbar library,其目的是尽可能接近material design guidelines。感谢。

答案 2 :(得分:3)

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

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

答案 3 :(得分:1)

Snackbar实际上只是一个Crouton,有一些边距。 Crouton目前的形式只支持添加到ViewGroup的start(第0项),但是你可以在my github找到对Crouton,DownUnderMode的“strayan”增强。 请注意,官方的Crouton库和DownUnderMode版本有点不同步(希望在2058年接受DownUnderMode拉取请求时修复)。

答案 4 :(得分:0)

使用设计库我们可以实现Android 2.1以上的所有版本。

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

如果您需要任何帮助,请删除评论。

答案 5 :(得分: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();
    }
}

希望这对你有用。

有关更多Android教程,请关注此博客:Trinity Tuts