2015-09-19 1 views
0

Я использую drawable, чтобы изменить фон и текст textViews внутри моего навигационного ящика. Я хотел бы сохранить фоновый белый для текстовой области, но, проверяя, что фоновый белый не показывает эффект пульсации на фоне, вместо этого он делает это с текстом, делающим текст серым. На рисунке ниже средняя нажата, что вызывает эффект пульсации.Почему этот эффект пульсации работает не так, как ожидалось?

The ripple effect

Вот мои рисуем файлы, которые используются для внесения изменений в цветах

фона:

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:drawable="@color/selected" android:state_activated="true" /> 
    <item android:drawable="@color/white" /> 
</selector> 

Текст:

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:color="@color/primary" android:state_activated="true" /> 
    <item android:color="@color/primary_text" /> 
</selector> 

файл макета TextView

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentRight="true" > 

    <TextView 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:textSize="25.0sp" 
     android:background="@drawable/activated_background" 
     android:textColor="@drawable/activated_text" 
     android:id="@id/text1" 
     android:layout_weight="0" 
     android:layout_marginTop="8dip" 
     android:layout_marginBottom="8dip" /> 

</RelativeLayout> 

ответ

0

Если вы используете пользовательский фон, эффект пульсации не будет отображаться. Возможно, вам придется использовать другую библиотеку ряби, такую ​​как Material Ripple.

+0

Волновой эффект выглядит отлично на один с серым фоном, хотя. Те, что я хочу смешать с фоном (белый), выглядят не очень хорошо. – seang96

+0

Можете ли вы показать мне макет xml – myatmins

+0

Я добавил его к вопросу. – seang96

2

Вы должны использовать 2 доступных файла и использовать его в качестве фона своего вида. для предварительного Lolipop версии:

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:drawable="@color/white_list_item_selected_background" android:state_pressed="true" /> 
    <item android:drawable="@android:color/white" /> 

</selector> 

для Lolipop (v21):

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

</ripple> 
+0

Я знаю о создании еще одного для поддержки перед левшей, я сосредоточен на вопросах дизайна после леденца. Пытаясь использовать леденец, он терпит неудачу в том смысле, что выбранный не имеет изменения цвета. Каждая попытка, которую я сделал, чтобы изменить цвет выбранного, не удалась. – seang96

+0

Вот изображение, показывающее, как это в некотором роде решение: http://puu.sh/kh5T1/7561478f88.png сначала, выбранный в синем тексте не выбрал фон, на который нажимается средний изображение и выбранный фон не заполняют пространство заполнения до других элементов. – seang96

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" />