【问题标题】:Activity content transition doesn't work活动内容转换不起作用
【发布时间】:2018-07-06 06:03:52
【问题描述】:

我想从 Activity 开始内容转换。但是内容转换不起作用。为什么以及如何解决?

这是我的代码:

class PolishStartActivity : AbsActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        initContentTransition()
        setContentView(R.layout.activity_polish_start)
    }

    private fun initContentTransition() {
        window.apply {
            requestFeature(Window.FEATURE_CONTENT_TRANSITIONS)
            enterTransition = TransitionSet().apply {
                addTransition(Slide(Gravity.TOP).addTarget(R.id.tvBooksTitle).addTarget(R.id.tvBooksDescription))
                addTransition(Fade().addTarget(R.id.cvSearchBox))
                // addTransition(Fade()) only this transition works fine 
                duration = 1000L
            }
        }
    }
}

附:我以ActivityOptions 开头我的Activity。

【问题讨论】:

    标签: android android-activity android-transitions


    【解决方案1】:

    经过多次尝试和实验,我找到了解决此问题的方法。

    在我的根ViewGroup(在我的情况下是ConstraintLayout)添加这一行:

    android:transitionGroup="false"
    

    是的!现在您可以为过渡设置targets,它会起作用!

    【讨论】:

    • 太不可思议了!
    【解决方案2】:

    将 initContentTransition() 放在 super.onCreate() 之前;

        class PolishStartActivity : AbsActivity() 
       {
            override fun onCreate(savedInstanceState: Bundle?) 
            {
                initContentTransition()
                super.onCreate(savedInstanceState)
                setContentView(R.layout.activity_polish_start)
            }
           ..................
           ..................
    }
    

    【讨论】:

      猜你喜欢
      • 2016-05-05
      • 2018-04-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-01
      • 1970-01-01
      相关资源
      最近更新 更多