Création d'une boîte de dialogue personnalisée dans Android
Je suis en train de créer un dialogue personnalisé dans Android. Mais ce que j'ai essayé de faire, je ne suis pas en mesure de modifier la largeur de la boîte de dialogue. Il leur reste la même. Voici la vue que je suis en train de que le contenu de la boîte de dialogue.
<RelativeLayout
android:id="@+id/current_stats"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="visible">
<ImageView android:id="@+id/player_image"
android:src="@drawable/person"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"/>
<TextView
android:id="@+id/player_name"
android:layout_below="@id/player_image"
android:layout_centerHorizontal="true"
android:text="Raja Ram"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<ImageButton android:id="@+id/dialog_close"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_alignParentRight="true"
android:background="#00000000"
android:src="@drawable/close_button_selector"/>
<ImageButton android:id="@+id/dialog_flip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:background="#00000000"
android:src="@drawable/rotate"/>
</RelativeLayout>
Comme vous pouvez le voir, partout où je suis à l'aide de wrap_content dans cet exemple de code. Aussi j'ai essayé les options suivantes
1) créer un style personnalisé lors de la création du Dialogue comme celui-ci.
dialog = new Dialog(this,R.style.Theme_Dialog);
Et le style comme suit
<resources>
<style name="Theme" parent="android:Theme">
</style>
<style name="Theme.Dialog">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:windowIsFloating">true</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
<item name="android:windowSoftInputMode">stateUnspecified|adjustPan</item>
</style>
</resources>
2) de fixer les paramètres de la vue dans la onCreateDialog() comme ceci
LayoutInflater inflater = (LayoutInflater)this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = inflater.inflate(R.layout.player_info, null, false);
ViewGroup.LayoutParams p = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT,ViewGroup.LayoutParams.WRAP_CONTENT);
dialog.setContentView(v,p);
3) j'ai aussi essayé de définir les paramètres de Fenêtre comme ceci dans le onCreateDialog() la méthode
WindowManager.LayoutParams params = dialog.getWindow().getAttributes();
params.width=WindowManager.LayoutParams.WRAP_CONTENT;
dialog.getWindow().setAttributes(params);
Mais encore une fois pas de chance. Quelqu'un peut-il m'aider avec ce problème. Suis-je en train de faire quelque chose de mal?? Aussi pouvez-vous s'il vous plaît me suggérer comment définir le x et le y postions pour la fenêtre de Dialogue?
Grâce
source d'informationauteur rajaramyadhav
Vous devez vous connecter pour publier un commentaire.
Cela a bien fonctionné pour moi.....
Est votre problème, qu'il prend toute la largeur de l'écran, ou que vous ne pouvez pas contrôler la façon dont une grande partie de l'écran est-il en place?
Pour faire de votre activité d'agir comme un dialogue, et de ne pas prendre le plein avec des, vous devez définir votre activité la boîte de dialogue thème dans le manifeste:
La boîte de dialogue sera aussi importante que requis par votre mise en page. Si vous voulez qu'il soit plus large, vous avez besoin pour rendre votre présentation plus large. (Ajuster la taille des images, ajouter du rembourrage, etc).
Je ne suis pas au courant d'une façon de positionner la fenêtre de dialogue.. je pense que c'est toujours centré, j'ai peut-être tort.
J'ai trouvé le problème après une longue période de temps. Le problème, c'était la façon dont j'ai utilisé Relative de la mise en page. Je suppose que je n'ai pas précisé la position relative correctement. Quand j'ai changé de linéaire, mise en page, il a bien fonctionné. Il n'était pas à l'aide de l'écran en entier, mais seulement tout ce qui est nécessaire.
Que je puisse changer la largeur,la hauteur et la position de la boîte de Dialogue à l'aide de getWindow().setAttributes(params)
dans le
onCreate()
méthode de votre choix de dialogue personnalisée classe de la prochaine