7
votes

Comment créer un gridview dans son parent linéarlayout?

GridView ne se comporte pas comme si c'était censé. Ceci Capture d'écran montre que la grille (en mode paysage) est rinçue à gauche. Je le veux centré.

Ceci est la disposition XML pour la grilleView. P>

<LinearLayout 
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:id="@+id/templatelandscape"
  android:orientation="horizontal"
  android:layout_width="fill_parent" 
  android:layout_height="wrap_content">
<GridView 
  android:id="@+id/commandsbarlandscape"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:layout_weight="1.0"
  android:layout_alignParentTop="true"
  android:layout_centerInParent="true"
  android:padding="0dp"
  android:verticalSpacing="2dp"
  android:horizontalSpacing="2dp"
  android:numColumns="auto_fit"
  android:columnWidth="52dp"
  android:stretchMode="spacingWidth"
  android:gravity="fill_horizontal" />
</LinearLayout>


2 commentaires

Vous avez besoin de grille de grille pour être centrée ou ses articles ???


Je veux que la grille soit centrée dans son parent. Pas les articles.


7 Réponses :


1
votes
  1. android: layout_height = "wrap_content" n'a aucune signification pour les widgets qui ont leur propre défilement, comme gridview . .

  2. android: layout_alignparenttop = "vrai" et android: layout_centerinparent = "true" est destiné à relativelayout , pas Linearlayout .

    Débarrassez-vous de votre Android: layout_weight = "1.0" , modifiez votre Android: layout_height à "Fill_Parent" ou une hauteur spécifique, Modifiez le linearlayout à un relativelayoutout , et vous pouvez être en meilleure forme.


0 commentaires

0
votes

Essayez de passer à la relativation et retirez le rembourrage horizontal de la vue de la grille. Le rembourrage horizontal causait ma grille se déplaçant du centre. J'ai ajouté un conteneur de vue autour de la disposition de la grille pour créer le rembourrage.


0 commentaires

1
votes

Définissez la valeur de linearlayout avec l'attribut suivant

Android: Gravity = "Centre" code>. p>

et retirez la ligne suivante de GridView P>

android:layout_centerInParent="true"


0 commentaires

0
votes

Votre gridlayout doit être comme ça ..

<LinearLayout 
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:id="@+id/templatelandscape"
  android:orientation="horizontal"
  android:layout_width="wrap_content" 
  android:layout_height="wrap_content"
  android:layout_gravity="center_horizontal">
<GridView 
  android:id="@+id/commandsbarlandscape"
  android:background="@android:color/darker_gray"
  android:layout_width="300dp"
  android:layout_height="wrap_content"
  android:layout_weight="1.0"
  android:verticalSpacing="2dp"
  android:horizontalSpacing="2dp"
  android:numColumns="auto_fit"
  android:columnWidth="52dp"
  android:stretchMode="none"
  android:gravity="fill_horizontal" />
</LinearLayout>


1 commentaires

Vous pouvez également utiliser RelativenellementAjouter, c'est plutôt bon, mais cela n'a pas d'importance pour votre problème ..



3
votes

Je ne sais pas si vous avez résolu votre problème (j'espère oui, et je suis aussi très tard pour répondre à ce post!), mais voici une indice:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/mainLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center" >

    <GridView
        android:id="@+id/gridview2"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:columnWidth="90dp"
        android:numColumns="auto_fit"
        android:stretchMode="spacingWidth" >

    </GridView>
</LinearLayout>


0 commentaires

0
votes

au lieu de régler la grille dans le linearlayout, réglez-le dans le RelativitAnout et Définissez le layout_centerhorizontal = true et layout_cénétorvertical = true dans la grille.


0 commentaires

0
votes

La meilleure solution que j'ai trouvée fait cela par code.

Ceci est mon XML xxx

et c'est le code qui fait la magie de mon fragment: xxx


1 commentaires

monsieur quelle est la classe commune?