Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 共享元素转换赢得';设置布局背景后,无法正常工作_Java_Android_Background_Shared Element Transition - Fatal编程技术网

Java 共享元素转换赢得';设置布局背景后,无法正常工作

Java 共享元素转换赢得';设置布局背景后,无法正常工作,java,android,background,shared-element-transition,Java,Android,Background,Shared Element Transition,我试着学习一些关于如何设置共享元素转换的教程。虽然当我试图建立一个背景时,共享元素出现了一种错误的方式,然后像它应该的那样移动 以下是我的问题视频的链接: 未设置背景时: 当我没有在xml布局中设置背景时,动画工作正常。有人知道为什么会这样吗 活动1 XML 活动2 XML 活动1 Java package com.stonks.sharedanimtest; 导入androidx.appcompat.app.appcompat活动; 导入androidx.constraintlayou

我试着学习一些关于如何设置共享元素转换的教程。虽然当我试图建立一个背景时,共享元素出现了一种错误的方式,然后像它应该的那样移动

以下是我的问题视频的链接:

未设置背景时:

当我没有在xml布局中设置背景时,动画工作正常。有人知道为什么会这样吗

活动1 XML


活动2 XML


活动1 Java

package com.stonks.sharedanimtest;
导入androidx.appcompat.app.appcompat活动;
导入androidx.constraintlayout.widget.constraintlayout;
导入androidx.core.app.ActivityCompat;
导入android.app.ActivityOptions;
导入android.content.Intent;
导入android.os.Bundle;
导入android.view.view;
导入android.view.WindowManager;
导入android.widget.LinearLayout;
导入android.widget.TextView;
公共类MainActivity扩展了AppCompatActivity{
私有文本视图文本视图;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_全屏,WindowManager.LayoutParams.FLAG_全屏);
getWindow().setEnterTransition(null);
textView=(textView)findViewById(R.id.text1);
textView.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
意向意向=新意向(MainActivity.this,MainActivity2.class);
ActivityOptions=ActivityOptions.MakeScenetTransitionAnimation(MainActivity.this,textView,“transition”);
startActivity(intent,options.toBundle());
}
});
}
}
活动2 Java

package com.stonks.sharedanimtest;
导入android.app.Activity;
导入android.app.ActivityOptions;
导入android.content.Intent;
导入android.os.Bundle;
导入android.view.view;
导入android.view.WindowManager;
导入android.widget.TextView;
导入androidx.appcompat.app.appcompat活动;
公共类MainActivity2扩展了AppCompatActivity{
私有文本视图文本视图;
@凌驾
public void onBackPressed(){
textView=(textView)findViewById(R.id.text2);
意向意向=新意向(MainActivity2.this,MainActivity.class);
ActivityOptions=ActivityOptions.MakeScenetTransitionAnimation(MainActivity2.this,textView,“transition”);
startActivity(intent,options.toBundle());
}
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_全屏,WindowManager.LayoutParams.FLAG_全屏);
getWindow().setEnterTransition(null);
}
}
颜色XML


#161618
#202024
#ffffff
清单XML



您可以将共享视图(无论是
text1
还是
text2
)包装在FrameLayout中,但TextView仍然应该是共享元素。它应该可以解决问题。

请补充一点解释,说明为什么/如何解决OP的问题。目前我不知道,我刚刚遇到了类似的问题,我注意到,将其包装起来可以解决问题。我仍在调查Android API的内部版本,寻找原因——如果我发现了,我会发布它。这是一个相关的问题,但我无法用描述的解决方案解决。我将ConstantLayout更新为2.0.4,它打破了我应用程序中的一个过渡。这把它修好了。不知道它为什么坏了,也不知道这是为什么修理它,但是谢谢!