startLayoutAnimation在onBackPressed或OnKeyListener(keyCode == KeyEvent.KEYCODE_BACK)中不起作用

时间:2017-08-14 08:09:45

标签: android onbackpressed layout-animation

我的活动中有一个LinearLayout视图。

当我按下后退按钮时,我希望LinearLayout的孩子们滑出来。

我有以下代码,但没有做任何事情:

<?xml version="1.0" encoding="utf-8"?>
<layoutAnimation xmlns:android="http://schemas.android.com/apk/res/android"
                 android:animationOrder="reverse"
                 android:animation="@anim/pop_out"
                 android:delay="10%" />

layout_pop_out是:

 /**
     * Runs the layout animation. Calling this method triggers a relayout of
     * this view group.
     */
    public void startLayoutAnimation() {
        if (mLayoutAnimationController != null) {
            mGroupFlags |= FLAG_RUN_ANIMATION;
            requestLayout();
        }
    }

我已经注释掉super.OnBackPressed()以查看动画是否开始,并且它不会启动。

有类似问题的人?

如果在按钮中设置onclick Listener,则SlideOut方法可以正常工作,动画播放。 我认为问题是&#34; startLayoutAnimation&#34;,如果调用onBackPressed或OnKeyListener(keyCode == KeyEvent.KEYCODE_BACK&amp;&amp; action == KeyEvent.ACTION_UP)布局动画不播放,但我点击了按下动画片。

        let callBackBlock:(DTHTMLElement) -> Void = { element in
        for oneChildElement in element.childNodes {
            guard let oneChildElement: DTHTMLElement = oneChildElement as? DTHTMLElement else {
                return
            }
            if oneChildElement.displayStyle == .inline && oneChildElement.textAttachment.displaySize.height > 2.0 * oneChildElement.fontDescriptor.pointSize {
                oneChildElement.displayStyle = .block;
                oneChildElement.paragraphStyle.minimumLineHeight = element.textAttachment.displaySize.height;
                oneChildElement.paragraphStyle.maximumLineHeight = element.textAttachment.displaySize.height;
            }
        }
    }
    let maxImageSize = CGSize(width: view.bounds.size.width - 20, height: view.bounds.size.height - 20)
    return [NSTextSizeMultiplierDocumentOption: NSNumber(floatLiteral: 1.0),
                                                DTMaxImageSize: NSValue(cgSize: maxImageSize),
                                                DTDefaultTextColor: UIColor.white,
                                                DTDefaultFontSize: NSNumber(floatLiteral: 15.0),
                                                DTWillFlushBlockCallBack: callBackBlock]

How can I start layoutAnimation when(before) leaving an activity

0 个答案:

没有答案