2015-08-11 6 views
4

Я пытаюсь реализовать эффект пульсации в RelativeLayout на API 22, но он не отображается. Однако такая же пульсация работает в Button.Эффект пульсации не работает в RelativeLayout

Код для моего пульсирующего Drawable выглядит следующим образом:

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

Код для Relative Layout выглядит следующим образом:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context=".MainActivity" 
    android:background="@drawable/ripple"> 
</RelativeLayout> 

После этого пульсация устанавливается в качестве фона на Button и RelativeLayout. Кнопка пульсации работает отлично, но она вообще не отображается на RelativeLayout.

Может ли кто-нибудь сказать мне, что я делаю неправильно?

+0

Куда из этого класса класс пульсаций? – Machado

+0

Является ли выставляемым в drawable-v21? – Raghunandan

+0

Холмс: извините, у меня не возник вопрос? –

ответ

17

Добавление этого атрибута android:clickable="true" works. Протестировано на Nexus 5

4

В дополнение к тому, что сказал Рахунандан, если вы используете библиотеку поддержки appcompat-v7, вам также необходимо добавить android:background="?attr/selectableItemBackground".

0

В моем случае эффект пульсации работает после первого щелчка, но для первого щелчка он не работает для меня. Изменили файл селектора фона с android: state_activated = "true" и в main.xml android: clickable = "true", тогда он отлично работает на все времена.

selector.xml (при разрешении \ вытяжке \ selector.xml)

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
<item android:state_activated="true" android:drawable="@drawable/card_bg_pressed" android:state_enabled="true" android:state_pressed="true"/> 
<item android:state_activated="true" android:drawable="@drawable/card_bg_focused" android:state_enabled="true" android:state_focused="true"/> 
<item android:state_activated="true" android:drawable="@drawable/card_bg_selected" android:state_enabled="false" android:state_selected="true"/> 
</selector> 

В activity_main.xml

<com.mysample.RecyclingImageView 
    android:id="@+id/imageview_overlay" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center_horizontal" 
    android:background="@drawable/selector" 
    android:clickable="true"/> 
+0

Что вы имеете в виду? здесь, похоже, не пульсирует. – srrvnn

0

Это атрибуты в макете.

android:background="?attr/selectableItemBackground" 
android:clickable="true"