J'essaye de montrer un DialogFragment presque plein écran. Mais je ne suis pas en mesure de le faire.
La façon dont je montre le fragment provient directement de la documentation du développeur Android
FragmentManager f = ((Activity)getContext()).getFragmentManager();
FragmentTransaction ft = f.beginTransaction();
Fragment prev = f.findFragmentByTag("dialog");
if (prev != null) {
ft.remove(prev);
}
ft.addToBackStack(null);
// Create and show the dialog.
DialogFragment newFragment = new DetailsDialogFragment();
newFragment.show(ft, "dialog");
Je sais naïvement essayé de définir le RelativeLayout dans le fragment sur fill_parent et certains minWidth et minHeight.
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:minWidth="1000px"
android:minHeight="600px"
android:background="#ff0000">
Je saurais m'attendre à ce que DialogFragment remplisse la majorité de l'écran. Mais je ne semble redimensionner que verticalement mais seulement jusqu'à une certaine largeur fixe horizontalement.
J'ai également essayé de définir les attributs de fenêtre dans le code, comme suggéré ici: http://groups.google.com/group/android-developers/browse_thread/thread/f0bb813f643604ec . Mais cela n'a pas aidé non plus.
Je ne comprends probablement pas quelque chose sur la façon dont Android gère les dialogues, car je suis tout nouveau dans ce domaine. Comment puis-je faire quelque chose comme ça? Existe-t-il d'autres moyens d'atteindre mon objectif?
Appareil Android:
Asus EeePad Transformer
Android 3.0.1
Mise à jour: j'ai maintenant réussi à le mettre en plein écran, avec le code suivant dans le fragment
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setStyle(STYLE_NO_FRAME, android.R.style.Theme_Holo_Light);
}
Malheureusement, ce n'est pas tout à fait ce que je veux. J'ai vraiment besoin d'un petit "rembourrage" autour de la boîte de dialogue pour afficher l'arrière-plan.
Des idées pour y parvenir?