美文网首页
2018-08-13

2018-08-13

作者: Flannery | 来源:发表于2018-09-18 10:47 被阅读0次

# RapidFloatingActionButton

[![Maven Central](https://maven-badges.herokuapp.com/maven-central/com.github.wangjiegulu/rfab/badge.svg)](https://maven-badges.herokuapp.com/maven-central/com.github.wangjiegulu/rfab) [![](https://img.shields.io/badge/license-Apache%202-orange.svg)](http://www.apache.org/licenses/LICENSE-2.0) ![API](https://img.shields.io/badge/API-14%2B-brightgreen.svg?style=flat)

[![](https://img.shields.io/badge/blog-Wang%20Jie-228377.svg)](https://blog.wangjiegulu.com) [![](https://img.shields.io/badge/twitter-@wangjiegulu-blue.svg)](https://twitter.com/wangjiegulu)

Quick solutions for Floating Action Button,RapidFloatingActionButton(RFAB)

# How to use:

Dependencies:

[AndroidBucket](https://github.com/wangjiegulu/AndroidBucket):The base library

[AndroidInject](https://github.com/wangjiegulu/androidInject):The Inject library

[ShadowViewHelper](https://github.com/wangjiegulu/ShadowViewHelper):Shadow layout, shadow view for android

[NineOldAndroids](https://github.com/JakeWharton/NineOldAndroids):The Property Animation library for pre android 3.0

**Newest version:** [![Maven Central](https://maven-badges.herokuapp.com/maven-central/com.github.wangjiegulu/rfab/badge.svg)](https://maven-badges.herokuapp.com/maven-central/com.github.wangjiegulu/rfab)

### Gradle:

```groovy

compile 'com.github.wangjiegulu:rfab:x.x.x'

```

### Maven:

```xml

com.github.wangjiegulu

rfab

x.x.x

```

## activity_main.xml:

```xml

xmlns:rfal="http://schemas.android.com/apk/res-auto"

android:id="@+id/activity_main_rfal"

android:layout_width="match_parent"

android:layout_height="match_parent"

rfal:rfal_frame_color="#ffffff"

rfal:rfal_frame_alpha="0.7"

>

xmlns:rfab="http://schemas.android.com/apk/res-auto"

android:id="@+id/activity_main_rfab"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignParentRight="true"

android:layout_alignParentBottom="true"

android:layout_marginRight="15dp"

android:layout_marginBottom="15dp"

android:padding="8dp"

rfab:rfab_size="normal"

rfab:rfab_drawable="@drawable/rfab__drawable_rfab_default"

rfab:rfab_color_normal="#37474f"

rfab:rfab_color_pressed="#263238"

rfab:rfab_shadow_radius="7dp"

rfab:rfab_shadow_color="#999999"

rfab:rfab_shadow_dx="0dp"

rfab:rfab_shadow_dy="5dp"

/>

```

Add`` at outermost layout of RFAB(``)

### Properties

#### RapidFloatingActionLayout:

- **rfal_frame_color**: Frame color when expand RFAB,default is white color

- **rfal_frame_alpha**: Frame color alpha(0 ~ 1) when expand RFAB,default is 0.7

#### RapidFloatingActionButton:

- **rfab_size**: The size of RFAB,only support two size(Material Design):

- normal: diameter 56dp

- mini: diameter 40dp

- **rfab_drawable**: The drawable of RFAB,default drawable is "+"

- **rfab_color_normal**: Normal status color of RFAB。default is white

- **rfab_color_pressed**: Pressed status color of RFAB。default is "#dddddd"

- **rfab_shadow_radius**: Shadow radius of RFAB。default is 0(no shadow)

- **rfab_shadow_color**: Shadow color of RFAB。default is transparent. it will be invalid if the rfab_shadow_radius is 0

- **rfab_shadow_dx**: The shadow offset of RFAB(x-axis)。default is 0

- **rfab_shadow_dy**: The shadow offset of RFAB(y-axis)。default is 0

## MainActivity:

```java

@AILayout(R.layout.activity_main)

public class MainActivity extends AIActionBarActivity implements RapidFloatingActionContentLabelList.OnRapidFloatingActionContentLabelListListener {

@AIView(R.id.activity_main_rfal)

private RapidFloatingActionLayout rfaLayout;

@AIView(R.id.activity_main_rfab)

private RapidFloatingActionButton rfaBtn;

private RapidFloatingActionHelper rfabHelper;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

RapidFloatingActionContentLabelList rfaContent = new RapidFloatingActionContentLabelList(context);

rfaContent.setOnRapidFloatingActionContentLabelListListener(this);

List items = new ArrayList<>();

items.add(new RFACLabelItem()

.setLabel("Github: wangjiegulu")

.setResId(R.mipmap.ico_test_d)

.setIconNormalColor(0xffd84315)

.setIconPressedColor(0xffbf360c)

.setWrapper(0)

);

items.add(new RFACLabelItem()

.setLabel("tiantian.china.2@gmail.com")

.setResId(R.mipmap.ico_test_c)

.setIconNormalColor(0xff4e342e)

.setIconPressedColor(0xff3e2723)

.setLabelColor(Color.WHITE)

.setLabelSizeSp(14)

.setLabelBackgroundDrawable(ABShape.generateCornerShapeDrawable(0xaa000000, ABTextUtil.dip2px(context, 4)))

.setWrapper(1)

);

items.add(new RFACLabelItem()

.setLabel("WangJie")

.setResId(R.mipmap.ico_test_b)

.setIconNormalColor(0xff056f00)

.setIconPressedColor(0xff0d5302)

.setLabelColor(0xff056f00)

.setWrapper(2)

);

items.add(new RFACLabelItem()

.setLabel("Compose")

.setResId(R.mipmap.ico_test_a)

.setIconNormalColor(0xff283593)

.setIconPressedColor(0xff1a237e)

.setLabelColor(0xff283593)

.setWrapper(3)

);

rfaContent

.setItems(items)

.setIconShadowRadius(ABTextUtil.dip2px(context, 5))

.setIconShadowColor(0xff888888)

.setIconShadowDy(ABTextUtil.dip2px(context, 5))

;

rfabHelper = new RapidFloatingActionHelper(

context,

rfaLayout,

rfaBtn,

rfaContent

).build();

}

@Override

public void onRFACItemLabelClick(int position, RFACLabelItem item) {

Toast.makeText(getContext(), "clicked label: " + position, Toast.LENGTH_SHORT).show();

rfabHelper.toggleContent();

}

@Override

public void onRFACItemIconClick(int position, RFACLabelItem item) {

Toast.makeText(getContext(), "clicked icon: " + position, Toast.LENGTH_SHORT).show();

rfabHelper.toggleContent();

}

}

```

RFAB also needs an implementation of `RapidFloatingActionContent` to fill and assign content of RFAB when it expands.

Here is a quick solution of `RapidFloatingActionContent`:`RapidFloatingActionContentLabelList`.You can add some items(RFACLabelItem,of course not recommended to add too many items),and config color, drawable, shadow, background image, text size, color of label and animation of each item.

To preview the demo: [The top picture effects](https://github.com/wangjiegulu/RapidFloatingActionButton/tree/master/screenshot) or [Inbox of Google](https://play.google.com/store/apps/details?id=com.google.android.apps.inbox).

At last,you need combine them by `RapidFloatingActionButtonHelper`.

# About expand style:

If you don't like `RapidFloatingActionContentLabelList`,you can expand your content style. Extend `com.wangjie.rapidfloatingactionbutton.RapidFloatingActionContent`, initialize the content layout and style,and invoke `setRootView(xxx);` method. If you want to add more animations,override those methods:

```java

public void onExpandAnimator(AnimatorSet animatorSet);

public void onCollapseAnimator(AnimatorSet animatorSet);

```

add your animations to the animatorSet.

License

=======

```

Copyright 2015 Wang Jie

Licensed under the Apache License, Version 2.0 (the "License");

you may not use this file except in compliance with the License.

You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software

distributed under the License is distributed on an "AS IS" BASIS,

WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

See the License for the specific language governing permissions and

limitations under the License.

```

相关文章

  • 雨天之乐

    文/紫玉姑娘 2018-08-13 最近接连几天都在下雨,...

  • Ubuntu终端缓存行数太少,不能显示全部编译信息

    2018-08-13 终端左上角 Edit->Profile Preferences->Scrolling->Sc...

  • 2018-08-13

    若给你自由 你会向哪飞翔 丫丫0205 2018-08-13 21:45 · 字数 242 · 阅读 0 · 日记...

  • Cadence innovus

    2018-08-13 一、innovus作用:数字芯片P&R布局布线版图设计工具. 二、操作流程:innovus ...

  • 01_HTML 预备知识

    时间:2018-08-13 姓名:魏文应 一、HTML的基本语法 HTML 超文本标记语言。HTML 代码 不区分...

  • 2019-12-13

    《孙子兵法》完整版,原文+译文,读懂古人最高谋略!(收藏) 教你学国学 2018-08-13 《孙子兵法》又称《孙...

  • 2019-12-13

    《孙子兵法》完整版,原文+译文,读懂古人最高谋略!(收藏) 教你学国学 2018-08-13 《孙子兵法》又称《孙...

  • (肖飒)区块链“存证”如何落地

    2018-08-13 肖飒lawyer 区块链“存证”,如何落地?(应用版) 答应为社区朋友普法,有朋友总结了一个...

  • 按所需数量购买所需产品。

    2018-08-13 (稻盛哲学学习会)打卡第90天 姓名:祝新华 部门:业务部 组别:待定 【知~学习】 《京瓷...

  • 正确跑姿

    2018-08-13摘抄自《画说跑步那些事》 nicholas在《跑步,该如何跑》中提倡一种“姿势跑步法”的理念,...

网友评论

      本文标题:2018-08-13

      本文链接:https://www.haomeiwen.com/subject/myipbftx.html