2017-05-30 88 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屬性。