2017-05-30 40 views
0

Ripple effect problem添加到堆叠视图连锁反应Android Studio中

我想实现的“素食主义者”和“非素食”按钮涟漪效应,但被阻止在这两种情况下用于按钮标签的TextView 。下面是我的XML文件

activity_main.xml中

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/activity_main" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    android:clipToPadding="false" 
    android:clipChildren="false" 
    tools:context="com.techpappy.whattoeat.MainActivity" 
    android:background="@color/cherryRed"> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="What would you prefer ?" 
     android:layout_centerHorizontal="true" 
     android:textSize="20sp" 
     android:background="@color/cherryRed" 
     android:layout_marginTop="30dp" 
     android:padding="10dp" 
     android:elevation="4dp" 
     android:textColor="@color/wineBrown" 
     android:id="@+id/textView" /> 

    <LinearLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:orientation="vertical" 
     android:layout_centerVertical="true" 
     android:layout_centerHorizontal="true" 
     android:gravity="center" 
     android:id="@+id/linearLayout"> 

     <FrameLayout 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content"> 

      <ImageButton 
       android:id="@+id/vegButton" 
       android:layout_width="300dp" 
       android:layout_height="50dp" 
       android:src="@drawable/button_red" 
       android:clickable="true" 
       android:background="?attr/selectableItemBackgroundBorderless"/> 

      <TextView 
       android:layout_width="200dp" 
       android:layout_height="50dp" 
       android:text="Vegetarian" 
       android:textSize="30sp" 
       android:layout_gravity="center" 
       android:gravity="center" 
       android:textColor="#6B2737" 
       android:fontFamily="monospace" 
       android:textStyle="bold"/> 

     </FrameLayout> 

     <FrameLayout 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="30dp"> 

      <ImageButton 
       android:id="@+id/nonvegbutton" 
       android:layout_width="300dp" 
       android:layout_height="50dp" 
       android:src="@drawable/button_red" 
       android:clickable="true" 
       android:background="?attr/selectableItemBackgroundBorderless"/> 

      <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="Non Vegetarian" 
       android:textSize="30sp" 
       android:layout_gravity="center" 
       android:textColor="#6B2737" 
       android:fontFamily="monospace" 
       android:textStyle="bold"/> 

     </FrameLayout> 
    </LinearLayout> 



</RelativeLayout> 
+1

取而代之的是一个FrameLayout,你可以直接使用Button。您可以在同一个组件中设置背景和文本,在本例中为Button。 – ARP

+0

这是我做的第一件事,但我无法将材质设计效果添加到它(高程,波纹等)。他们只在使用ImageButton时才工作 – iammrmehul

回答

0

我发现这个问题是不是与TextView但与ImageButton。我删除了ImageButtons并使用Button(保持TextViews原样)。我使用android:backgruond = "?attr/selectableItemBackgroundBorderless"将连锁效果应用于按钮,并为它们提供了我所需的颜色,我使用了android:tint属性。