如果是为了兼容低版本的Android系统,则需要引用Android Material Design的扩展支持库,我在之前的一篇文章张,较为详细的说明了如何导入Android Material Design依赖的库:android-support-v7-appcompat和design库,文章链接地址:http://www.cnblogs.com/zzw1994/p/5012475.html
Android Material Design的FloatingActionButton是一个“悬浮”的按钮。Snackbar有一些类似于Android过去的Toast,但有很多自己独特的特点(比如支持选项事件,选择事件键等)。CoordinatorLayout是一个新的布局,实现在布局上各个组件之间的协调。
现在给出一个例子,对以上三个组件的使用加以说明:

activity_main.xml:

 <android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent" > <ListView
android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="match_parent" /> <android.support.design.widget.FloatingActionButton
android:id="@+id/floatingActionButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right|bottom"
android:layout_marginBottom="10dip"
android:layout_marginRight="10dip"
android:src="@drawable/ic_launcher"
app:backgroundTint="#e57373"
app:borderWidth="10dp"
app:elevation="10dip"
app:fabSize="normal"
app:pressedTranslationZ="10dp"
app:rippleColor="#c62828" /> </android.support.design.widget.CoordinatorLayout>

MainActivity.java

 package com.zzw.testdesign_coordinatorlayout;

 import java.util.ArrayList;

 import android.app.Activity;
import android.app.ListActivity;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast; public class MainActivity extends ListActivity {
private ArrayList<String> data = null;
private ArrayAdapter<String> adapter; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); data = new ArrayList<String>();
adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, data); setListAdapter(adapter); FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.floatingActionButton);
fab.setOnClickListener(new OnClickListener() { @Override
public void onClick(View v) {
int len = data.size();
adapter.add("添加数据-->" + len);
adapter.notifyDataSetChanged();
}
});
// listView.setOnItemClickListener(new OnItemClickListener() {
//
// @Override
// public void onItemClick(AdapterView<?> arg0, View view, final int position, long id) {
//
// Snackbar.make(view, "选择数据" + position + "?", 1).setAction("是", new OnClickListener() {
//
// @Override
// public void onClick(View v) {
// Toast.makeText(getApplicationContext(), "选择了" + position, 1).show();
// }
// }).show();
// }
// });
}
@Override
public void onListItemClick(ListView l, View v, final int position, long id) {
final Activity activity = this;
Snackbar.make(v, "选择数据 " + position + " ?", Snackbar.LENGTH_SHORT).setAction("是", new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(activity, "选择了 " + position, Toast.LENGTH_SHORT).show();
}
}).show();
}
}

需要说明的一点是,假设将activity_main.xml布局文件最外层的布局改写成FrameLayout,那么,当选择ListView中某一项时候,弹出的Snackbar将会遮掩住FloatingActionButton。因此使用CoordinatorLayout可以使Snackbar和FloatingActionButton协调工作,不会出现遮掩的问题。

有的会出现java.lang.reflect.InvocationTargetException,解决方案:http://www.cnblogs.com/zzw1994/p/5012467.html

Android Material Design的FloatingActionButton,Snackbar和CoordinatorLayout的更多相关文章

  1. Android Material Design 系列之 SnackBar详解

    SnackBar是google Material Design提供的一种轻量级反馈组件.支持从布局的底部显示一个简洁的提示信息,支持手动滑动取消操作,同时在同一个时间内只能显示一个SnackBar. ...

  2. Android Material Design:基于CoordinatorLayout实现向上滚动导航条ToolBar滚出、向下滚动导航条滚出

    activity_main.xml: <android.support.design.widget.CoordinatorLayout xmlns:android="http://sc ...

  3. Android Material Design 兼容库的使用

    Android Material Design 兼容库的使用 mecury 前言:近来学习了Android Material Design 兼容库,为了把这个弄懂,才有了这篇博客,这里先推荐两篇博客: ...

  4. Android Material Design简单使用

    吐槽 作为一个 Android developer,没有什么比拿着 UI 设计的一堆 iOS 风格的设计 来做需求更恶心的了,基本所有空间都要照着 iOS 来画一遍,Material Design 辣 ...

  5. Android Material Design NavigationView 及 Palette 颜色提取器

    DrawerLayout + NavigationView DrawerLayout布局,通常在里面添加两个子控件,程序主界面添加到NavitagionView前面. <android.supp ...

  6. Material Design之FloatingActionButton的使用

    FloatingActionButton是继承至ImageView,所以FloatingActionButton拥有ImageView的全部属性. CoordinatorLayout能够用来配合Flo ...

  7. Android Material Design(一)史上最全的材料设计控件大全

    主要内容: 本文将要介绍Material design和Support library控件,主要包括TextInputLayout.SwitchCompat.SnackBar.FloatingActi ...

  8. Android Material design

    1.Material Design:扁而不平 2.Android Support Design 库 之 Snackbar使用及源码分析 3.十大Material Design开源项目,直接拿来用!

  9. Material Design学习-----FloatingActionButton

    FloatingActionButton是悬浮操作按钮,它继承自imageview,所以说它具备有imageview所有的方法和属性.与其他按钮不同的是,FloatingActionButton默认就 ...

随机推荐

  1. C++模拟Java“内部”类

    代码思路来自Thinking in C++ 10.13.1内部类方法.类似多重继承,但是类型转换是单向的:Outer支持“向上”转型,但是不能“向下”转型回Outer. #include <io ...

  2. 【Android Api 翻译4】android api 完整翻译之Contacts Provider (学习安卓必知的api,中英文对照)

    Contacts Provider 电话簿(注:联系人,联络人.通信录)提供者 ------------------------------- QUICKVIEW 快速概览 * Android's r ...

  3. jsp中调用getOutputStream()产生冲突

    再用jsp进行图片的生成的时候,例如一些验证码,比例图的时候,在对图片进行输出调用 getOutputStream() 的时候会报该方法已经被调用的冲突. 例如如下的程序: <%@ page c ...

  4. 纯CSS 多图片轮播

    今天做东西的时候,遇到一个问题关于图片轮播的问题,以前也接触过(百度 人家的demo改改..),再次遇到这个问题的时候,根据以前的印象找到了demo正信心满满的准备改一下嵌进去,发现 jquery.m ...

  5. Linux_netstat 详解

    简介 Netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Member ...

  6. 前端开发调试工具控制台之console命令详解

    控制台(Console)是Firebug的第一个面板,也是最重要的面板,主要作用是显示网页加载过程中产生各类信息. 一.显示信息的命令 Firebug内置一个console对象,提供5种方法,用来显示 ...

  7. oracle使用pfile或者spfile启动

    oracle 11G使用pfile启动数据库 startup pfile='pfile参数文件路径' oracle 11G使用spfile启动数据库 spfile=Windows缺省目录    %OR ...

  8. java.util.concurrent.CountDownLatch

    闭锁是一种同步工具类,可以延迟线程的进度直到闭锁到达终止状态. 闭锁的作用相当于一扇门,在闭锁到达结束状态之前,这扇门一直是关闭的,任何线程都不能通过这扇门,当闭锁到达结束状态时,这扇门会打开并允许所 ...

  9. div/span等获取焦点问题(tabindex属性的简单理解)

    1.先看问题 当我们要对一个div/span元素获取焦点的时候,直接对$("#div1").focus()是不能实现效果的,比如下图: 当点击输入框进行输入后,在点击区域弹出选择地 ...

  10. 剑指Offer11 在O(1)内删除链表结点

    /************************************************************************* > File Name: 11_Delete ...