Java 过渡和片段
对于我的应用程序的UI,我使用Java 过渡和片段,java,android,android-fragments,transition,Java,Android,Android Fragments,Transition,对于我的应用程序的UI,我使用Transitions和Fragments。在我的第一个片段的onCreateView功能中,我启动了转换,将显示从第一个场景更改为第二个场景。之后,当我点击一个按钮时,我开始另一个转换,以显示由第三个场景表示的某种“splashscreen”,在它的onTransactionEnd中,我尝试用myView.postDelayed(new myRunnableForChangingFragment(),1000)更改片段 在调试模式下,我看到我的Runnable已正
Transition
s和Fragment
s。在我的第一个片段的onCreateView
功能中,我启动了转换
,将显示从第一个场景
更改为第二个场景
。之后,当我点击一个按钮时,我开始另一个转换
,以显示由第三个场景
表示的某种“splashscreen”,在它的onTransactionEnd
中,我尝试用myView.postDelayed(new myRunnableForChangingFragment(),1000)
更改片段
在调试模式下,我看到我的Runnable
已正确启动,但新的片段不会替换第一个片段。。。尽管如此,还是发生了一些事情:我必须单击后退按钮两次才能返回到我的第一个片段。事实上,片段似乎已激活,但不可见
你知道我该怎么解决吗
如第一条评论中所述,下面是我用来更改片段的代码:
fragment=new mySecondFragment();
transaction=getActivity().getFragmentManager().beginTransaction();
transaction.replace(R.id.Conteneur, fragment,"Fragment tag");
transaction.addToBackStack(null);
transaction.commit();
我可以补充一点,这段代码是从onTransitionEnd
外部启动的,可以完美地工作
“容器”的xml文件:
第一个和第二个场景的xml文件(唯一的区别;按钮在第一个场景的代码中设置为不可见):
“飞溅”场景的xml fle:
我从场景一(按钮不可见,简单的幻灯片
)过渡到场景二,然后再回到场景一(再次是幻灯片
),然后过渡到“飞溅”场景(带有淡入
过渡)。当您从片段一切换到片段二时,请使用下面的代码,我希望它能帮助您
Fragment fragment = SearchActivity.newInstance(context);
String tag = fragment.toString();
getFragmentManager().beginTransaction()
.addToBackStack(tag)
.replace(R.id.fragment, new SearchActivity())
.commit();
当您想在反按时再次返回此片段时,请使用addToBackStack,否则您不需要添加addToBackStack请共享片段事务代码?好的,问题已解决!我搞砸了不同的视图和容器。。。
<TextView
android:id="@+id/TitreJeux"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginBottom="@dimen/MargeVerticaleBoutonsInterfaceJeux"
android:lines="1"
android:text="@string/app_name"
android:textColor="#FFFF00"
android:textSize="35sp"
android:textStyle="bold"
android:typeface="serif"/>
<vd63.jeux.JeuAnimationRapide.BoutonInterface
android:id="@+id/BoutonOptions"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_gravity="center"
android:layout_marginTop="@dimen/MargeVerticaleBoutonsInterfaceJeux"
android:layout_weight="1"
android:background="@drawable/bouton_jouer"
android:text="@string/BoutonOptions"
android:textColor="@color/CouleurTexteBoutons"
android:textSize="25sp"
android:typeface="serif"/>
<?xml version="1.0" encoding="utf-8"?> <LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/EcranChargement"
android:orientation="vertical"
android:gravity="center"
android:background="@drawable/fond_interface"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".JeuAnimationRapide">
<ImageView
android:id="@+id/VD63"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/vd63"/>
<ImageView
android:id="@+id/Chargement"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/chargement"/>
Fragment fragment = SearchActivity.newInstance(context);
String tag = fragment.toString();
getFragmentManager().beginTransaction()
.addToBackStack(tag)
.replace(R.id.fragment, new SearchActivity())
.commit();