2017-08-11 51 views
0

我试图在LinearLayout中为自定义TextView添加涟漪效果,但问题在于TextView的主要颜色是白色,但在应用涟漪后,TextView的颜色变化。我想首先TextView的背景颜色保持白色,触摸时必须出现波纹颜色。 这里是我的代码:如何从自定义形状中删除涟漪效应半透明覆盖

ripple.xml

<?xml version="1.0" encoding="utf-8" ?> 
<ripple xmlns:android="http://schemas.android.com/apk/res/android" 
    android:color="#A9A9A9"> 
    <item> 
    <shape android:shape="rectangle" > 
    <solid android:color="#FFFFFF" /> 
    <corners 
     android:bottomRightRadius="0dp" 
     android:bottomLeftRadius="30dp" 
     android:topRightRadius="0dp" 
     android:topLeftRadius="30dp"/> 
    </shape> 
    </item> 
</ripple> 

main.xml中

<LinearLayout 
    android:orientation="vertical" 
    android:layout_width="match_parent" 
    android:layout_height="0dp" 
    android:layout_weight="80" 
    android:id="@+id/base_layout" 
    android:minWidth="25px" 
    android:minHeight="25px" 
    android:clickable="true"> 
    <TextView 
     android:text="What would you like to view?" 
     android:textColor="@android:color/white" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:gravity="right" 
     android:textAlignment="gravity" 
     android:id="@+id/selector_ask" 
     android:textSize="18sp" 
     android:paddingRight="6dp" 
     android:clickable="true" 
     android:layout_marginTop="32dp" /> 
    <TextView 
     android:text="News &amp; Events" 
     android:textColor="@color/material_grey_800" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:gravity="center" 
     android:textAlignment="gravity" 
     android:id="@+id/selectorNews" 
     android:textSize="16sp" 
     android:layout_marginTop="20dp" 
     android:paddingTop="12dp" 
     android:paddingBottom="12dp" 
     android:background="@drawable/ripple" 
     android:backgroundTint="#FFFFFF" 
     android:layout_marginLeft="120dp" 
     android:clickable="true" 
     android:textAllCaps="true" 
     android:focusable="true" 
     android:focusableInTouchMode="true" 
     android:selectAllOnFocus="true" /> 

我尝试使用机器人:ID = “@机器人:ID /面具”,但没有成功。我应该如何解决这个问题?

回答

0

即作出连锁反应的一种方式,但试试这个简单的方法:

android:foreground="?selectableItemBackgroundBorderless" 

将其添加到视图你想上的连锁反应,并删除旧的波纹。

+0

这不适合我。按照您的说法,我将背景设置为自定义和前景,但没有成功 –