对于我的应用程序的用户界面,我使用Transition
s和Fragment
s。在我的第一个Fragment
的onCreateView
函数中,我启动了一个Transition
将显示从第一个Scene
更改为第二个Scene
。之后,当我点击一个Button
时,我开始另一个Transition
显示某种由第三个Scene
代表的“splashscreen”,并且在onTransactionEnd
中,我尝试将Fragment
更改为myView.postDelayed(new myRunnableForChangingFragment(),1000)
。转换和片段
在调试模式下,我看到我的Runnable
已正确启动,但新的Fragment
未替换第一个......但是,确实发生了一些情况:必须单击后退按钮上的两次才能返回到我的第一个Fragment
。事实上,它似乎Fragment
被激活,但不可见...
任何想法,我怎么能解决这个问题?
由于要求在第一个评论,这里是我用来更改代码的Fragment
:
fragment=new mySecondFragment();
transaction=getActivity().getFragmentManager().beginTransaction();
transaction.replace(R.id.Conteneur, fragment,"Fragment tag");
transaction.addToBackStack(null);
transaction.commit();
我可以添加该代码从onTransitionEnd
作品完美地外推出。
为“容器”中的XML文件:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/Conteneur" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> </LinearLayout>
用于第一和第二场景中的XML文件(唯一的区别;按钮中的第一个设置为不可见的代码) :
<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 FLE的 “飞溅” 场景:
<?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"/>
我过渡从场景中的一个(按钮不可见的,简单Slide
)到场景2然后返回到场景1(Slide
再次)然后到“飞溅”场景(具有Fade
转换)。
?请分享FragmentTransaction代码? –
好的,问题解决了!我搞乱了不同的观点和容器...... – Zelig63