Snackbar 的简单使用
2015-12-20 19:45
411 查看
在 Android Design Support Library 中有个
Snackbar 。
Snackbar 提供了一个类似于 Toast 的组件,该组件存在于屏幕的底部靠左边的位置,Snackbar 出现在屏幕上的所有其他元素之上,且只有一个只有一个可以同时显示。
Snackbar 的
Snackbar 也可以自定义,其自定义方式和 Toast 类似 (自定义的 Toast 如前文:/article/10639755.html),只是 Snackbar
只显示在屏幕底部的左下角。
其效果如下:
首先添加支持库(其中design:23.1.1可修改):
content_main.xml :
MainActivity.java :
Snackbar 。
Snackbar 提供了一个类似于 Toast 的组件,该组件存在于屏幕的底部靠左边的位置,Snackbar 出现在屏幕上的所有其他元素之上,且只有一个只有一个可以同时显示。
Snackbar 的
setAction(CharSequence, android.view.View.OnClickListener)。方法能够有点击事件,有些类似于 AlertDialog。
Snackbar 也可以自定义,其自定义方式和 Toast 类似 (自定义的 Toast 如前文:/article/10639755.html),只是 Snackbar
只显示在屏幕底部的左下角。
其效果如下:
首先添加支持库(其中design:23.1.1可修改):
content_main.xml :
<?xml version="1.0" encoding="utf-8"?> <LinearLayout 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:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center_horizontal" android:orientation="vertical" app:layout_behavior="@string/appbar_scrolling_view_behavior" tools:context="com.crazy.androiddesigntest.MainActivity" tools:showIn="@layout/activity_main"> <Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Snackbar 默认的显示" /> <Button android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Snackbar 自定义的显示"/> </LinearLayout>
MainActivity.java :
package com.crazy.androiddesigntest; import android.graphics.Color; import android.os.Bundle; import android.support.design.widget.Snackbar; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; import android.view.Gravity; import android.view.View; import android.widget.Button; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; import android.widget.Toast; public class MainActivity extends AppCompatActivity implements View.OnClickListener { private Button button1, button2; private Snackbar snackbar = null; private Toast toast = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); button1 = (Button)findViewById(R.id.button); button2 = (Button)findViewById(R.id.button2); button1.setOnClickListener(this); button2.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.button: buttonClick(v); break; case R.id.button2: buttonClickTwo(v); break; } } private void buttonClick (View v){ Snackbar.make(v, "点击显示新的组件 Snackbar ", Snackbar.LENGTH_LONG) .setAction("你还可以点击此处", new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(MainActivity.this, "Toast的内容",Toast.LENGTH_SHORT).show(); } }).show(); } private void buttonClickTwo(View v){ snackbar = Snackbar.make(v, "自定义的 Snackbar", Snackbar.LENGTH_LONG); LinearLayout layout = (LinearLayout) snackbar.getView(); ImageView image = new ImageView(this); image.setImageResource(R.drawable.tools); layout.addView(image, 0); snackbar.setAction("点击此处", new View.OnClickListener() { @Override public void onClick(View v) { clickForToast(); } }); snackbar.show(); } private void clickForToast(){ toast = new Toast(this); toast.setGravity(Gravity.CENTER, 50, -100); ImageView image = new ImageView(this); image.setImageResource(R.drawable.tools); LinearLayout ll = new LinearLayout(this); ll.addView(image); TextView textView = new TextView(this); textView.setText("带图片的Toast显示"); textView.setTextSize(24); textView.setTextColor(Color.RED); ll.addView(textView); // 设置 Toast 显示自定义 View toast.setView(ll); toast.setDuration(Toast.LENGTH_LONG); toast.show(); } }
相关文章推荐
- UESTC 482 Charitable Exchange(四川省赛B题)
- CCF CSP 201509-4 树的直径 相关解题方法和网址
- java异常处理及定义
- 数据结构基础(一)线性表
- 校内赛总结
- 如何更改Linux中默认的openjdk为自己安装的JDK
- 当自己的Ubuntu遇到卡死的时候
- JMockit简单使用(二)
- Linux网络编程笔记
- unity 常用优化技术
- zstuoj (浙理工) 孙壕请一盘青岛大虾呗
- Autolayout(VFL)
- anr,多线程,handler
- Google java编程风格指南
- android网络编程之HttpUrlConnection的讲解--实现文件断点下载
- HTML5 File API初探支持文件拖放上传功能
- Linux——磁盘基本概念
- 摩尔斯电码(morse)转换英文字符串c语言代码
- mysql获取某个表的所有字段名
- 数据库的操作(使用FMDB)