繁体   English   中英

从片段调用方法

[英]Call a method from a Fragment

我在Fragment中有一个需要从活动中调用的方法。

如果我将此代码添加到“活动”中,则该活动运行良好,但我想保持活动干净,并将代码保留在片段中。

我该怎么做呢?

这是片段中的方法

public void Foreg(final View v) {
    ValueAnimator box = ValueAnimator.ofFloat(0, 1);
    box.setDuration(1500);
    box.start();

    box.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {

        @Override
        public void onAnimationUpdate(ValueAnimator animation) {
            // TODO Auto-generated method stub

            float value = ((Float) (animation.getAnimatedValue()))
                    .floatValue();
            v.setRotationX(value * -180);
            v.setPivotX(v.getWidth() / 2);
            v.setPivotY(v.getHeight());
            v.setCameraDistance(10000);
            v.setClickable(false);

            /*
             * float value = ((Float) (animation.getAnimatedValue()))
             * .floatValue(); v.setRotationY(value * -160); v.setPivotX(00);
             * v.setPivotY(300); v.setCameraDistance(3500);
             * v.setClickable(false);
             */

        }
    });

    ValueAnimator box2 = ValueAnimator.ofFloat(1, 0);
    box2.setDuration(1500);
    box2.setStartDelay(4000);
    box2.start();

    box2.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {

        @Override
        public void onAnimationUpdate(ValueAnimator animation) {
            // TODO Auto-generated method stub

            float value = ((Float) (animation.getAnimatedValue()))
                    .floatValue();
            v.setRotationX(value * -180);
            v.setPivotX(v.getWidth() / 2);
            v.setPivotY(v.getHeight());
            v.setCameraDistance(10000);
            v.setClickable(true);

            /*
             * float value = ((Float) (animation.getAnimatedValue()))
             * .floatValue(); v.setRotationY(value * -160); v.setPivotX(00);
             * v.setPivotY(300); v.setCameraDistance(3500);
             * v.setClickable(true);
             */
        }
    });
}

如果我理解您的问题,您想从活动中调用片段方法Foreg(View v)

尝试这种方式:

FragmentManager fm = getSupportFragmentManager();    
YourFragmentClass fragment = (YourFragmentClass)fm.findFragmentById(R.id.your_fragment_id);
fragment.Foreg(View v);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM