Git Product home page Git Product logo

Comments (6)

YoKeyword avatar YoKeyword commented on May 29, 2024

看的很用心呐 :)
if (mFragmentAnimator.getEnter() == 0) { mNeedDebounce = true; mFragmentAnimator.setEnter(R.anim.no_anim); }
上面的代码是,当用户设置了无动画(即FragmentAnimator.setEnter(0)或者使用DefalutNoAnimator时),mNeedDebounce设置为true,(字段名取的不好,下次commit修改下~)

在下面的
if (mNeedDebounce) { _mActivity.setFragmentClickable(true); }
就直接解除防抖动啦,github上的源码把上面的这个代码调整到onActivityCreated里,更合适些。
所以不用给mNoAnim设置监听了。

对了,我刚写了篇关于防抖动的文章:http://www.jianshu.com/p/9dbb03203fbc

onCreateAnimation里的mIsRoot是当某Fragment在Activity的栈底(即根Fragment)时,保证无动画的,这个是mIsRoot是0.1版本就存在的。

还是很感谢你的反馈哈 :)

from fragmentation.

duchengzhen avatar duchengzhen commented on May 29, 2024

是这样,我也被Fragment的各种问题困扰,想写出一套解决方案,恰好整个时候看到你的这个库.
mIsRoot我理解,下面的一个Activity


public class RechargeShellActivity extends BaseActivity {

    public static Intent createIntent(Context context) {
        Intent intent = new Intent(context, RechargeShellActivity.class);
        return intent;
    }

    @Override
    protected FragmentAnimator onCreateFragmentAnimator() {
        //设置转场动画
        return new DefaultVerticalAnimator();
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setTranslucentStatus();
        setContentView(R.layout.activity_recharge);

        if (null == savedInstanceState) {
            //启动后,RechargeFragment的mIsRoot字段为true
            start(RechargeFragment.newInstance());
        }
        initData();
    }

    @Override
    protected int setContainerId() {
        return R.id.container;
    }

    protected void initData() {

    }
}

上面Activity启动RechargeFragment,onCreateAnimation()返回的应该是mNoAnim,启动后界面无法点击

from fragmentation.

YoKeyword avatar YoKeyword commented on May 29, 2024

感谢指出,我现在去查看下原因~

from fragmentation.

YoKeyword avatar YoKeyword commented on May 29, 2024

我刚看了下,按你这个代码,没出现界面无法点击的问题,你看下我的Demo,和你的代码一样,如果是无动画,会在onCreate里走(依赖0.6.3的话)
if (mNeedDebounce) { _mActivity.setFragmentClickable(true); }

PS:如果是github上的源码,是在onActivityCreated里走

如果可能,希望能加下我的QQ交流:328903522

from fragmentation.

YoKeyword avatar YoKeyword commented on May 29, 2024

我理解你的意思了,感谢,在为根Fragment设置了enter动画时确实有问题!!

稍后push修复该问题的commit

from fragmentation.

YoKeyword avatar YoKeyword commented on May 29, 2024

@duchengzhen 已push修复该问题,非常感谢~

from fragmentation.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.