代码之家  ›  专栏  ›  技术社区  ›  Tim Trueman

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

  •  18
  • Tim Trueman  · 技术社区  · 10 年前

    材料设计网站提到了一种新的类似吐司的元素,称为Snackbar: http://www.google.com/design/spec/components/snackbars-and-toasts.html

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

    6 回复  |  直到 10 年前
        1
  •  24
  •   wmora    9 年前

    更新2015-05-29:

    谷歌发布了 Design Support Library 其中包括 Snackbar 以及其他材料设计小部件。

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

    原答覆

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

    正如@friedrich nietzche所指出的,我实现了一个库 Snackbar 在您的项目中。

    https://github.com/nispok/snackbar

    希望它有帮助!

        2
  •  4
  •   MrEngineer13    10 年前

    不管好坏

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

        3
  •  3
  •   samst    10 年前

    也许你可以看看这里。 http://www.williammora.com/2014/08/snackbar-android-library.html

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

        4
  •  1
  •   straya    9 年前

    小吃店实际上只是一个 Crouton 有一些余量。当前形式的Crouton仅支持添加到ViewGroup的开头(第0项),但是您可以在 my github . 请注意,Crouton官方库和DownUnderMode版本有点不同步(希望在2058年接受DownUnderMode拉取请求时修复)。

        5
  •  0
  •   Naruto    9 年前

    使用设计库,我们可以实现所有版本的Android2.1。

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

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

        6
  •  0
  •   Aneh Thakur    9 年前

    下面是在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