10
votes

Comment spécifier la taille de la boîte de dialogue correcte dans le fichier de présentation XML pour la boîte de dialogue Android?

J'ai créé une boîte de dialogue Android à l'aide d'un fichier de présentation XML comme: xxx

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:

Voici un croquis de la façon dont la boîte de dialogue a l'air (r.layout.enabledialog):

 Entrez la description de l'image ici

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.

Merci,

RUCHIR


edit: voici mon fichier de ressource de mise en page: xxx


3 commentaires

Veuillez poster le fichier de ressources de la mise en page. Vous voudrez peut-être aussi modifier match_parent à wrap_content dans votre code Java.


@Commermonsware édité :)


@Commonsware je l'ai eu en fait à match_parent car quand il était wrap_content , le contenu se chevauchait et ne correspond pas correctement.


8 Réponses :


3
votes

Essayez de changer fill_parent à wrap_content dans votre racine relativelayoutout , ainsi que changer match_parent sur sur Wrap_content dans votre code Java (ou supprimez-vous de l'ensemble setattributes () bit).

Je l'avais en fait à Match_Parent car quand il était enveloppant, le contenu se chevauchait et ne correspond pas correctement

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, uautomatorviewer , etc.) pour commencer à déterminer comment réparer votre mise en page pour éviter vos chevauchements.


2 commentaires

Ok, j'ai changé tous les match_parent s sur wrap_content s et le chevauchement se poursuit. Comment puis-je utiliser / utiliser ces outils d'inspection dont vous avez parlé? Merci


@Ruchirbaronia: uautomatorviewer 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.



3
votes

Essayez de modifier les paramètres de mise en page YOUT Hauteur à:

lp.height = windowmanager.layoutparams.wrap_content;


0 commentaires

1
votes

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>


3 commentaires

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 ..



2
votes

I Généralement définir le LayoutParams Programmatique. Je pense que vous pouvez essayer dialogmentfragment avec le code ci-dessous dans Onresume : xxx


0 commentaires

2
votes

Modifier le relativation à linearlayout: xxx


0 commentaires

2
votes

Convertir directement à partir de la valeur de ressource: xxx pré>

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"


0 commentaires

2
votes

Dans votre présentation relative Spécifiez layout_height and Layout_Width, et ne le définissez pas sur Fill_Parent. Exemple: xxx


0 commentaires

2
votes

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>


0 commentaires