J'ai créé une boîte de dialogue Android à l'aide d'un fichier de présentation XML comme: Cependant, mon contenu de fichier XML prend uniquement la moitié de l'écran, alors quand j'affiche la boîte de dialogue, je Je montrent un espace supplémentaire, qui n'a pas l'air bien: P> Comment puis-je couper cet espace supplémentaire? Dans Android Studio, l'éditeur de mise en page suppose que le fichier XML consiste à prendre tout l'écran, mais vraiment, je veux vraiment une petite fenêtre contextuelle. P> Merci, P> RUCHIR P > Voici un croquis de la façon dont la boîte de dialogue a l'air (r.layout.enabledialog): h2>
8 Réponses :
Essayez de changer Je l'avais en fait à Match_Parent car quand il était enveloppant, le contenu se chevauchait et ne correspond pas correctement p>
blockQuote>
Alors c'est un problème distinct que vous auriez besoin de réparer. Commencez par obtenir la taille de la boîte de dialogue pour être à peu près ce que vous voulez. Ensuite, utilisez un outil d'inspection (le nouveau en as 2.2, la hiérarchie de la hiérarchie, fill_parent code> à wrap_content code> dans votre racine relativelayoutout code>, ainsi que changer match_parent code> sur sur Wrap_content code> dans votre code Java (ou supprimez-vous de l'ensemble setattributes () code> bit). P>
uautomatorviewer code>, etc.) pour commencer à déterminer comment réparer votre mise en page pour éviter vos chevauchements. P>
Ok, j'ai changé tous les match_parent code> s sur wrap_content code> s et le chevauchement se poursuit. Comment puis-je utiliser / utiliser ces outils d'inspection dont vous avez parlé? Merci
@Ruchirbaronia: uautomatorviewer code> est un outil de ligne de commande dans votre SDK. La hiérarchie vue est dans le moniteur de périphériques Android (disponible sur Outils> Android dans le menu principal Android Studio). Les deux sont couverts dans les documents, au moins légèrement. Fondamentalement, ils vous donnent un coup d'œil au contenu réel de votre UI, chargé de l'appareil, vous permettant de visualiser les règles telles qu'elles sont appliquées.
Essayez de modifier les paramètres de mise en page YOUT Hauteur à: p>
lp.height = windowmanager.layoutparams.wrap_content; code> p>
Modifiez la taille de relativation principale selon la condition requise dans le fichier XML. Spécifiez la hauteur ce dont vous avez besoin comme ci-dessous
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="100dp"
android:background="#1dd1e9">
<Switch
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/locationSwitch"
android:layout_marginTop="46dp"
android:checked="false"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="Blah"
android:id="@+id/textView"
android:textSize="30sp"
android:layout_alignTop="@+id/locationSwitch"
android:layout_centerHorizontal="true"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:text="Blah Blah Blah"
android:id="@+id/textView2"
android:gravity="center"
android:textSize="20sp"
android:layout_below="@+id/locationSwitch"
android:layout_centerHorizontal="true"
/>
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/locationEdit"
android:layout_below="@+id/textView2"
android:layout_alignLeft="@+id/textView"
android:layout_alignStart="@+id/textView"
android:layout_alignRight="@+id/textView"
android:layout_alignEnd="@+id/textView"
android:singleLine = "true"
android:imeOptions="actionDone" />
<Switch
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/blareSwitch"
android:layout_marginTop="40dp"
android:checked="false"
android:layout_below="@+id/locationEdit"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="Blah"
android:id="@+id/textView3"
android:textSize="30sp"
android:layout_alignBottom="@+id/blareSwitch"
android:layout_centerHorizontal="true" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:text="Blah Blah Blah"
android:id="@+id/textView4"
android:textSize="20sp"
android:layout_centerVertical="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/blareEdit"
android:layout_below="@+id/textView4"
android:layout_alignLeft="@+id/locationEdit"
android:layout_alignStart="@+id/locationEdit"
android:layout_alignRight="@+id/locationEdit"
android:layout_alignEnd="@+id/locationEdit"
android:singleLine = "true"
android:imeOptions="actionDone" />
</RelativeLayout>
Comment puis-je savoir quelle taille?
PLZ Vérifiez le code dans le relativation parent que j'ai donné une hauteur en tant que 100 dP utilisez et changez selon les besoins.
Modifiez la hauteur de la mise en page parent Vérifiez le code et faites la piste et l'erreur ..
I Généralement définir le LayoutParams code> Programmatique. Je pense que vous pouvez essayer dialogmentfragment code> avec le code ci-dessous dans Onresume code>:
Modifier le relativation à linearlayout:
Convertir directement à partir de la valeur de ressource: maintenant match_parent code> dans votre présentation pour la boîte de dialogue: p> android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:layout_height="match_parent"
Dans votre présentation relative Spécifiez layout_height and Layout_Width, et ne le définissez pas sur Fill_Parent.
Exemple:
Créer une boîte de dialogue personnalisée comme suit
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="vertical">
<Switch
android:id="@+id/locationSwitch"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_marginTop="46dp"
android:checked="false" />
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@+id/locationSwitch"
android:layout_centerHorizontal="true"
android:text="Blah"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textSize="30sp" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/locationSwitch"
android:layout_centerHorizontal="true"
android:gravity="center"
android:text="Blah Blah Blah"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textSize="20sp" />
<EditText
android:id="@+id/locationEdit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignEnd="@+id/textView"
android:layout_alignLeft="@+id/textView"
android:layout_alignRight="@+id/textView"
android:layout_alignStart="@+id/textView"
android:layout_below="@+id/textView2"
android:layout_marginBottom="50dp"
android:imeOptions="actionDone"
android:singleLine="true" />
</LinearLayout>
Veuillez poster le fichier de ressources de la mise en page. Vous voudrez peut-être aussi modifier
match_parent code> àwrap_content code> dans votre code Java.@Commermonsware édité :)
@Commonsware je l'ai eu en fait à
match_parent code> car quand il étaitwrap_content code>, le contenu se chevauchait et ne correspond pas correctement.