对于我的应用的用户界面,我使用了Transition
和Fragment
s。在我的第一个onCreateView
的{{1}}函数中,我启动Fragment
将显示从第一个Transition
更改为第二个Scene
。之后,当我点击Scene
时,我会启动另一个Button
以显示由第三个Transition
代表的某种“闪屏”,并在其中Scene
,我尝试使用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();
外部启动的代码效果非常好。
“容器”的xml文件:
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 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"/>
)转换到场景2然后再转换回场景1(再次Slide
)然后转换到“启动”场景(使用Slide
转换)。
答案 0 :(得分:1)
当你从片段1切换到片段2时,使用下面的代码它对我有用,我希望它能帮助你。
sqlite> .schema
CREATE TABLE steamUsers (id integer PRIMARY KEY AUTOINCREMENT,discordID text
NOT NULL,steamID text NOT NULL);
当你想在backpress上再次回到这个片段时使用addToBackStack,否则你不需要添加addTobackstack