过渡和片段

时间:2017-07-15 05:55:29

标签: java android android-fragments transition

对于我的应用的用户界面,我使用了TransitionFragment 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转换)。

1 个答案:

答案 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