2015-02-19 3 views
1

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

+0

Я сталкиваюсь с аналогичной проблемой, и мое решение было установлено «android: background =» @ android: color/transparent »в внешнем LinearLayout, которое LinearLayout окружено RelativeLayout. Это означает, что если я не создам внешний вид 'android: background' во внешнем макете, тогда' selectableItemBackgroundBorderless' не будет работать. –

ответ

1

я сделал библиотеку, которая делает вашу проблему легко решить

https://github.com/xgc1986/RippleViews

<Button 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/btn1" 
    android:background:"the color of the button that you want, that important for your case" 
    android:text="Default android button"/> 

, а затем с Явы

View b1 = findViewById(R.id.btn1); 

b1.setBackground(RippleDrawableHelper.createRippleDrawable(b1, rippleColor)); 

здесь док: https://github.com/xgc1986/RippleViews/blob/master/docs/RippleDrawableHelper.md

редактировать

View b1 = findViewById(R.id.btn1); 
// this may work 
View v2 = findViewById(R.id.parent); //the are where the ripple effect extends 
//change the view you send in the function 

b1.setBackground(RippleDrawableHelper.createRippleDrawable(v2, rippleColor)); 

Если это работает, потому, что он создает RippleDrawable для зрения, но тогда вы можете назначить этот рисуете другую точку зрения, то при нажатии на виде b1, он показывает пульсации относительно v2

+0

Но ваша библиотека должна сделать selectableitembackground эффект, я хочу эффект без полей. BTW - отличная библиотека для реализации эффекта пульсации на устройствах с предварительным леденец. Congrats! – Dahnark

+0

ok, легко добавить эту функцию 'View b1 = findViewById (R.id.btn1); Просмотреть v1 = findViewById (R.id.areaOfTheRipple); b1.setBackground (RippleDrawableHelper.createRippleDrawable (v1, rippleColor)); ' – xgc1986

+0

Nice hack: P! принято: D – Dahnark

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