在我的应用中,我使用了Fragment
,其中我想为多个Scene
制作动画。在我的onCreateView
中,我创建了Scene
将使用myView=inflater.inflate(R.layout.my_fragment_layout,null,false)
设置动画的框架。相应的布局是:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/MyContainer"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/black"
android:orientation="vertical">
之后:
myFrame=(LinearLayout)myView.findViewById(R.id.MyContainer);
获得了框架。View
为Scene
创建activeView= inflater.inflate(R.layout.my_scene,myFrame,false);
(请参阅下面的xml文件)。Scene
创建myScene =new Scene(myFrame, activeView);
。我用Transition
开始TransitionManager.go(myScene , myTransition);
。
Scene
的布局是:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/InterfaceJeu"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/fond_interface"
android:orientation="vertical"
tools:context=".Jeu">
<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.Jeu.BoutonInterface
android:id="@+id/BoutonJouer"
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/BoutonJouer"
android:textColor="@color/CouleurTexteBoutons"
android:textSize="25sp"
android:typeface="serif"/>
<vd63.jeux.Jeu.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"/>
<vd63.jeux.Jeu.BoutonInterface
android:id="@+id/BoutonModeEmploi"
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/BoutonModeEmploi"
android:textColor="@color/CouleurTexteBoutons"
android:textSize="25sp"
android:typeface="serif"/>
<vd63.jeux.Jeu.BoutonInterface
android:id="@+id/BoutonStatistiques"
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/BoutonStatistiques"
android:textColor="@color/CouleurTexteBoutons"
android:textSize="25sp"
android:typeface="serif"/>
<vd63.jeux.Jeu.BoutonInterface
android:id="@+id/BoutonQuitter"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_gravity="center"
android:layout_marginBottom="@dimen/MargeVerticaleBoutonsInterfaceJeux"
android:layout_marginTop="@dimen/MargeVerticaleBoutonsInterfaceJeux"
android:layout_weight="1"
android:background="@drawable/bouton_quitter"
android:text="@string/BoutonQuitter"
android:textColor="@color/CouleurTexteBoutons"
android:textSize="25sp"
android:typeface="serif"/>
问题在于,尽管我的框架和Scene
的容器定义为宽度和高度设置为match_parent
,但结果显示并不总是适合整个屏幕。在我的平板电脑上,只使用了一半的屏幕...
有谁知道问题可能来自哪里?
答案 0 :(得分:0)
您需要定义单独的布局文件夹以支持不同的设备,如下所示......
res/layout/main_activity.xml
res/layout-sw600dp/main_activity.xml # For 7” tablets
res/layout-sw720dp/main_activity.xml # For 10” tablets
答案 1 :(得分:0)
问题来自myView=inflater.inflate(R.layout.my_fragment_layout,null,false)
行。一旦被myView=inflater.inflate(R.layout.my_fragment_layout,container,false)
替换,其中container
是传递给Container
函数的onCreateView
作为参数,一切都正常。