Я хочу показать/скрыть всплывающее окно, используя анимацию expand/collapse от this answer. Мне удалось использовать анимацию, применив ее к всплывающему виду, которое является видом внутри popupwindow. Проблема, с которой я столкнулся сейчас, заключается в том, что когда пользователь касается внешнего popupwindow, popupwindow автоматически отклоняется, и я не могу показать анимацию коллапса, прежде чем отклонять всплывающее окно.Android PopupWindow Пользовательская анимация Java
Вот код, который я написал:
View popupView = View.inflate(context,R.layout.popuplayout, null);
popup = new PopupWindow(popupView,ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.WRAP_CONTENT);
popup.setAnimationStyle(0);
popup.setOutsideTouchable(true);
popup.setFocusable(true);
popup.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
popup.showAsDropDown(anchor, 0, 0);
popup.setBackgroundDrawable(null);
popupView.post(new Runnable() {
@Override
public void run() {
expand(popupView);
}
});
.
.
.
private void expand(final View v) {
final int targetHeight = ((View)v.getParent()).getHeight();
// Older versions of android (pre API 21) cancel animations for views with a height of 0.
v.getLayoutParams().height = 1;
v.setVisibility(View.VISIBLE);
Animation a = new Animation()
{
@Override
protected void applyTransformation(float interpolatedTime, Transformation t) {
v.getLayoutParams().height = interpolatedTime == 1
? LayoutParams.MATCH_PARENT
: (int)(targetHeight * interpolatedTime);
v.requestLayout();
}
@Override
public boolean willChangeBounds() {
return true;
}
};
a.setDuration(200);
v.startAnimation(a);
}
мне было интересно, есть ли способ показать анимацию до увольнения всплывающего окна при касании снаружи без стиля XML или реализовать данную анимацию с помощью XML-анимации.
Не совсем то, что я хотел, но получил и идею для этого :) Спасибо –