7 Réponses :


1
votes

Vous avez Android: Layout_weight = 1. Donc, vos cases à cocher remplissent toutes la largeur de l'écran. Supprimer Android: Layout_weight de style et ajoutez la marge entre les cases à cocher.

La gravité de la case à cocher n'affecte pas le bouton de la coche interne, seul le texte.

EDIT

OK, essayez ceci: xxx

et retirer layout_weight de style.

Autre moyen est de créer une case à cocher personnalisée. Mais je pense que c'est trop compliqué pour ce problème.


1 commentaires

Oui, mais je voudrais que le linéarlayout occupe la largeur de l'écran. Si je supprimais Android: Layout_weight = 1, les deux cases à cocher s'effondrent à gauche de l'écran. Ils deviennent centré, mais ce n'est que parce qu'ils ont un ensemble wrap_content.



-1
votes
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/MyLL"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
android:orientation="horizontal" >

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_weight="0.5"
    android:background="#ff0000"
    android:gravity="center" >
    <CheckBox
        android:id="@+id/cb1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
</LinearLayout>

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_weight="0.5"
    android:background="#00FF00"
    android:gravity="center" >
<CheckBox
    android:id="@+id/cb2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />
 </LinearLayout>
ok, last try for today ;) you should post a picture next time, HOW it should look... well, now you ll have your LinearLayout divided into two similar wide part (red & green), and in every block your checkbox is in the center...did i got it right this time?!

5 commentaires

Supprimer les deux lignes de gravité dans le fichier de style et ajouter la gravité que vous suggère à la linearlayout ne fonctionne pas. Marche-t-il de votre côté? Vous n'avez pas besoin d'un appareil. Eclipse montre le problème.


J'ai mis à jour ma réponse ... Votre problème est le poids de la mise en page 1, où vous dites que votre élément devrait prendre tout l'espace qu'il ait (ou la moitié de celui-ci, si vous définissez deux d'entre eux ...)


Mais je faire veux que le linéarlayout prenne tout l'espace qu'il a. Je veux aussi que les deux cases à cocher scissionnent cet espace égal (donc 1,1). La solution que vous suggérez rend les deux cases à cocher ensemble, cette fois au centre.


Tu l'as eu. Seulement j'ai quelques problèmes avec cette solution. Les deux linearlayouts supplémentaires sont-ils nécessaires? Si j'ajoute un linearlayout pour chaque widget que je veux centré, je double presque le nombre total de nœuds dans mon fichier XML. Le deuxième problème est que je voudrais faire exactement la même chose pour un radiogroupe contenant de nombreux Radiobuttons. Dans ce cas, il n'est plus possible (IIUC) de presser une linearlayout entre le radiogroupe et les boutons.


Eh bien, il y a de nombreuses façons de créer UIS .. mais je suppose que vous devriez vérifier la gridlayout. Cela correspondra à votre besoin, je suppose. développeur.android.com/reference/android/widget/gridlayout.ht ml < / a>



0
votes

Voici quelque chose qui peut aider:

Android: Gravity vs Android: Layout_gravity

  • Android: La gravité est généralement interne, demandant généralement la vue elle-même quoi faire avec les pixels qu'il a
  • Android: Layout_gravity est généralement externe, demandant généralement le groupe de visiteurs parent (linearlayout / relativation / Framelayout) Comment positionner la vue avec des pixels supplémentaires que la vue n'utilise pas

    Si vous utilisez une vue avec Wrap_Content, vous souhaitez probablement utiliser layout_gravity. Si vous utilisez une vue avec match_parent, vous voulez probablement essayer la gravité.

    Embranchez parfois un autre groupe de vue autour d'une vue gênante peut aider au positionnement. Vues et groupes de spectacles Passez à travers une phase de négociation "d'écran" complexe et des vues différentes (boutons / TextView / ImageView / etc.) et des groupes de vie (Linearlayout / RelativitOntOut / TableauTout / etc.) ont des règles différentes et des pouvoirs de négociation

    C'est pourquoi, parfois jumelage d'une vue gênante avec un autre parent comme une frente ou une linearlayout peut le faire se comporter tout de suite


0 commentaires

0
votes

Ceci est un peu désordonné mais cela fonctionne, et oui, il fonctionne également pour 3 entrées de case à cocher:

 <LinearLayout
                        android:padding="0dip"
                        android:layout_width="0dp"
                        android:layout_weight="1"
                        android:hint="name"
                        android:layout_height="40dip"
                        android:textAlignment="center" android:layout_gravity="center"
                        android:orientation="horizontal"
                        >
                        <TextView
                            android:layout_width="0dip"
                            android:layout_height="1dip" android:layout_weight="1" android:text=" " />
                        <CheckBox
                            android:id="@+id/chk1"
                            android:layout_width="wrap_content"
                            android:layout_height="fill_parent"
                            android:scaleX="1.5" android:scaleY="1.5"
                            >
                        </CheckBox>
                        <TextView
                            android:layout_width="0dip"
                            android:layout_height="1dip" android:layout_weight="1" android:text=" " />
                        <CheckBox
                            android:id="@+id/chk2"
                            android:layout_width="wrap_content"
                            android:layout_height="fill_parent"
                            android:scaleX="1.5" android:scaleY="1.5"
                           >
                        </CheckBox>
                        <TextView
                            android:layout_width="0dip"
                            android:layout_height="1dip" android:layout_weight="1" android:text=" " />                            
                    </LinearLayout>


0 commentaires

0
votes

Essayez-le dans le style

 <item name="android:layout_width">0dp</item>


0 commentaires


0
votes
<style name="TextlessCheckBox" parent="android:Widget.Material.CompoundButton.CheckBox">
    <item name="android:button">@null</item>
    <item name="android:foreground">?android:listChoiceIndicatorMultiple</item>
    <item name="android:foregroundGravity">center</item>
</style>

0 commentaires