2017-08-21 4 views
0

Dans mon application, j'utilise un Fragment dans lequel je souhaite animer plusieurs Scene s. Dans mon onCreateView, je crée le cadre où Scene sera animé avec myView=inflater.inflate(R.layout.my_fragment_layout,null,false). La disposition correspondante est:Mauvaise taille de scène avec animation de scène

<?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"> 

Après que:

  • Je reçois le cadre avec myFrame=(LinearLayout)myView.findViewById(R.id.MyContainer);.
  • Je crée le View pour mon Scene avec activeView= inflater.inflate(R.layout.my_scene,myFrame,false); (voir le fichier xml ci-dessous). Je crée le Scene avec myScene =new Scene(myFrame, activeView); .

et je commence un Transition avec TransitionManager.go(myScene , myTransition); .

La disposition pour la Scene est:

<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"/> 

Le problème est que, malgré mon cadre et le Scene « conteneur s sont définies par la largeur et la hauteur réglée sur match_parent, l'affichage résultant n » t correspond toujours à l'intégralité de l'écran. Sur ma tablette, seulement la moitié de l'écran est utilisé ...

Est-ce que quelqu'un sait d'où le problème pourrait provenir?

Répondre

0

Le problème provenait de la ligne myView=inflater.inflate(R.layout.my_fragment_layout,null,false). Une fois remplacé par myView=inflater.inflate(R.layout.my_fragment_layout,container,false), où container est le Container passé à la fonction onCreateView en tant que paramètre, tout est devenu normal.

0

Vous devez définir des dossiers de mise en page distincts pour prendre en charge différents périphériques comme ci-dessous ...

res/layout/main_activity.xml 
res/layout-sw600dp/main_activity.xml # For 7” tablets 
res/layout-sw720dp/main_activity.xml # For 10” tablets 
+0

Était plutôt douteuse, mais l'a néanmoins essayé (pourquoi devrais-je le faire parce que 'match_parent 'a la même signification, peu importe la taille ou la densité de l'écran?). Résultat: pas de changement ... – Zelig63