【问题标题】:Ripple effects not showing in my app我的应用程序中未显示波纹效果
【发布时间】:2015-08-03 10:11:36
【问题描述】:

我正在创建一个应用程序扩展 AppCompatActivity。但我有一个问题:

涟漪效应未显示

我做错了吗?谢谢

Manifest.xml

<activity 
        android:name="com.example.MainActivity"
        android:theme="@style/AppTheme.Toolbar"
        android:screenOrientation="nosensor" android:configChanges="keyboardHidden|orientation">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

styles.xml

<style name="AppTheme.Toolbar" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="colorPrimary">@color/color_primary</item>
    <item name="colorPrimaryDark">@color/color_primary_dark</item>
    <item name="colorAccent">@color/color_accent</item>
</style>

MainActivity.java

public class MainActivity extends AppCompatActivity {

    ...
}

【问题讨论】:

    标签: android android-appcompat ripple


    【解决方案1】:

    我们需要做的第一件事是创建新的波纹选择器,它将包含我们旧的(稍作修改的)全息选择器:

    drawabale/ripple_selector.xml

    <?xml version="1.0" encoding="utf-8"?>
    <ripple xmlns:android="http://schemas.android.com/apk/res/android"
            android:color="?android:colorControlHighlight">
            <item android:id="@android:id/mask"      
            android:drawable="@drawable/xyz"/>
            <item android:drawable="@drawable/xyz"/>
    </ripple>
    

    新的涟漪 xml 标记描述了我们的涟漪应该是什么样子。

    android:color - 定义波纹的颜色。

    我的主题中的 android:colorControlHighlight 属性以匹配我的主要强调色。这样,默认按钮的内置波纹效果将获得相同的颜色。

    id 为@android:id/mask 的第一项定义了我的波纹的形状。如果我们不指定遮罩 - 形状将由所有其他 leyers 的形状决定。

    现在我们可以使用这个drawable作为按钮等的背景了。

    编辑:

    为简单起见,在可绘制对象中创建它并用作按钮等中的背景。

    <?xml version="1.0" encoding="utf-8"?>
    <ripple xmlns:android="http://schemas.android.com/apk/res/android"
        android:color="?attr/colorControlHighlight">
        <item android:drawable="?attr/colorPrimary"/>
    </ripple>
    

    【讨论】:

    • 我不想创造新的涟漪。我想使用默认的涟漪效果
    • 这是默认的涟漪效果,仅适用于 Lolipop 及以上版本。
    • @IMS @Dharmaraj 使用 ?android:selectableItemBackground 作为默认波纹。
    • 适用于 API 版本 >= 11
    猜你喜欢
    • 2019-05-11
    • 2015-05-17
    • 1970-01-01
    • 1970-01-01
    • 2015-06-08
    • 2016-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多