2015-08-26 2 views
0

Я новичок в разработке Android. Я пытаюсь разработать приложение для Android для Android. Я успешно читаю входящие и контакты и отображаю их в элементе ListView. Теперь я хочу добиться эффекта пульсации на этих ListView элементах каждый раз, когда их нажимают, затрагивают или выбирают. Я использовал listSelector, но кажется, что он не работает. Если кто-нибудь может мне помочь, ниже мой код:Эффект пульсации на элементе ListView

activity_main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    tools:context=".MainActivity"> 

    <ListView 
     android:id="@+id/msglist" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:drawSelectorOnTop="true" 
     android:listSelector="#777777" /> 

+0

попробуйте найти RippleDrawable, доступный с 21-го уровня api, и попытайтесь сделать его доступным на вашей платформе желаний. – VinceStyling

+0

@VinceStyling попробовали RippleDrawable, но все же он не работает. Обратите внимание, что я использую настраиваемую тему для своей деятельности. Если я использую эффект ряби в AppThemes, но когда я применяю специальную тему, эффекта пульсации больше нет. –

+0

Пожалуйста, проверьте http://stackoverflow.com/a/26604471/2414129 – ColinWa

ответ

9

Вы собираетесь надуть макет в вашем Adapter для ListView, верно? Затем вы можете перейти к этому layout.xml и установить android:background="?android:selectableItemBackground" в корневой элемент.

УВЕДОМЛЕНИЕ: Эффект пульсации может произойти только над API 21 (Lollipop), делая это. Под Lollipop, когда вы касаетесь элемента, появится прозрачный синий слой и наложите исходное содержимое, которое отображается как состояние выбора.

+4

Если ваш корневой элемент является «FrameLayout» или его подклассом, например «CardView», вы можете установить «android: foreground =»? Android: attr/selectableItemBackground "вместо этого. В результате вы можете легко установить цвет, установив фон. – ywwynm

Смежные вопросы