首页 文章

更改Android Circle按钮按下CodenameOne

提问于
浏览
2

我注意到当用Android按下一个按钮(用星系S5模拟)时,按钮的原点创建一个圆圈,如果保持足够长的话,则拉伸以填充整个按钮 . 有没有办法覆盖这个功能,所以按下按钮不会有这个圆圈?

Example of large button

3 回答

  • 1

    来自 Codename One Developer Guide section 5.8.3 "Ripple effect"

    材料设计中的波纹效果突出了手指的位置,并随着用户按下按钮而变成圆形以占据组件的整个区域 . 我们能够通过使触摸区域变暗并在快速动画中增长来执行涟漪效应 . 涟漪效应可以应用于任何组件,但我们目前只为Android上的按钮打开它,这也适用于 Headers 命令,侧面菜单元素等 . 这可能不适用于引导组件,如多按钮但是可能会在未来发生变化 . Component有一个属性可以启用涟漪效应setRippleEffect(boolean)和相应的isRippleEffect() . 您可以在组件级别单独打开或关闭它 . 但是,Button具有静态setButtonRippleEffectDefault(boolean)和isButtonRippleEffectDefault() . 这些允许我们定义所有按钮的默认行为,并且可以通过主题常量buttonRippleBool进行配置,该按钮当前默认在本机Android主题上 .

  • 0

    如果您尝试禁用按钮上的涟漪效果,请尝试添加

    android:背景

    到具有适当颜色的按钮 .

  • 0

    这称为涟漪效应,是Material Design上的标准视觉提示,用于告知用户按钮与之交互 .

    要禁用涟漪效果,您可以更改背景颜色:

    android:background="@color/colorAccent"

    前一个是最简单但不推荐的,因为这将使一个平坦的非交互式按钮 . 用户无法看到何时按下 .

    更好的解决方案是创建一个类似于以下的drawable并将其用作背景:

    bg_btn.xml

    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
    
        <item android:state_pressed="true">
            <color android:color="@color/colorAccentDark"/>
        </item>
    
        <item>
            <color android:color="@color/colorAccent"/>
        </item>
    
    </selector>
    

    然后你可以像这样使用它:

    android:background="@drawable/bg_btn"

相关问题