设置FloatingActionButton纹波

x10*_*ion 15 android android-animation material-design floating-action-button

我试图将FloatingActionButton纹波设置为类似于此的东西

从材料设计.

问题是我只得到一个没有波纹的"平面样式",它只是将按钮从我的情况下改变为白色到橙色而没有上面链接中显示的动画.

我在这里听到了答案:

带支持库的FloatingActionButton示例

但我的FAB仍然很无聊!

编辑:我目前的代码是:XML:

  <android.support.design.widget.FloatingActionButton
     android:id="@+id/item_activity_fab"
     android:layout_width="64dp"
     android:layout_height="64dp"
     android:layout_marginRight="16dp"
     android:src="@drawable/watch"
     app:borderWidth="0dp"
     app:elevation="6dp"
     app:fabSize="normal"
     app:layout_anchor="@id/item_activity_title_background"
     app:layout_anchorGravity="top|right|end"
     app:pressedTranslationZ="12dp"
     app:rippleColor="@android:color/transparent"/>
Run Code Online (Sandbox Code Playgroud)

Java的:

    mAddToWatchListFAB.setRippleColor(ContextCompat.getColor(this, R.color.orange_6));
Run Code Online (Sandbox Code Playgroud)

我在FAB上尝试了这种方法,但它似乎没有用.我也尝试了我提供的链接中的步骤

Usm*_*bal 37

将以下2个属性添加到浮动操作按钮xml代码中

 app:rippleColor="@color/textcolor"
 android:clickable="true"
Run Code Online (Sandbox Code Playgroud)

使FAB可点击可增加波纹颜色

  • 你还应该设置`android:focusable ="true"`属性 (5认同)
  • 谁会想到按钮的默认可点击属性会是 false? (2认同)

Sib*_*ran 4

你可以按照我的Gabriele Mariotti所说的方式来实现它

你可以这样做:

<Button
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:background="@drawable/ripple"

    />
Run Code Online (Sandbox Code Playgroud)

ripple.xml 的位置是:

<ripple xmlns:android="http://schemas.android.com/apk/res/android" 
                      android:color="?android:colorControlHighlight">
        <item android:id="@android:id/mask">
            <shape android:shape="oval">
                <solid android:color="?android:colorAccent" />
            </shape>
        </item>
 </ripple>
Run Code Online (Sandbox Code Playgroud)

正如这里所说,它可以适用于所有纹波需求。

更新

<android.support.design.widget.FloatingActionButton
     android:id="@+id/item_activity_fab"
     android:layout_width="64dp"
     android:layout_height="64dp"
     android:layout_marginRight="16dp"
     android:src="@drawable/watch"
     android:background="@drawable/ripple"
     app:borderWidth="0dp"
     app:elevation="6dp"
     app:fabSize="normal"
     app:layout_anchor="@id/item_activity_title_background"
     app:layout_anchorGravity="top|right|end"
     app:pressedTranslationZ="12dp"/>
Run Code Online (Sandbox Code Playgroud)

并使用上面的ripple.xml。很简单!您所需要做的就是遮盖:)

更新2

对于 API 20 及以下版本,有一些选项可以实现连锁反应。看看Marcin Orlowski所说的以下提示

幸运的是,已经有一些自定义实现可用:

包括与旧版本 Android 兼容的 Material 主题小部件集:

所以你可以尝试其中之一或谷歌搜索其他“材料小部件”等等......


归档时间:

查看次数:

11976 次

最近记录:

8 年,2 月 前