Xero Posté(e) 19 novembre 2010 Posté(e) 19 novembre 2010 Bonjour, après plusieurs recherches déspérées sur le sujet, je vous demande votre aide ! J'ai une ListView contenant des éléments récupérés sur le web. Le seul souçi est l'alignement de ses éléments. Comme une image vaut mieux que mille mots : Quelle solution est envisageable ? J'ai essayé de mixer avec un TableLayout mais sans succès. En attendant vos éventuelles propositions, je vous remercie d'avance ! Xero
Xero Posté(e) 22 novembre 2010 Auteur Posté(e) 22 novembre 2010 Merci beaucoup, je l'avais pas vu celui-là ! Je marque résolu après avoir testé Bonne journée Xero
Xero Posté(e) 22 novembre 2010 Auteur Posté(e) 22 novembre 2010 Bonjour, cela ne change pas mon problème. Voici le code main.xml <?xml version="1.0" encoding="utf-8"?> <GridView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/gridview" android:layout_width="fill_parent" android:layout_height="fill_parent" android:columnWidth="90dp" android:numColumns="1" android:verticalSpacing="10dp" android:horizontalSpacing="10dp" android:stretchMode="columnWidth" android:gravity="left" /> affichageitems.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content"> <TextView android:id="@+id/position" android:layout_width="wrap_content" android:layout_height="wrap_content"/> <TextView android:id="@+id/nom" android:layout_width="wrap_content" android:layout_height="wrap_content"/> <TextView android:id="@+id/joues" android:layout_width="wrap_content" android:layout_height="wrap_content"/> <TextView android:id="@+id/victoires" android:layout_width="wrap_content" android:layout_height="wrap_content"/> <TextView android:id="@+id/defaites" android:layout_width="wrap_content" android:layout_height="wrap_content"/> <TextView android:id="@+id/egalites" android:layout_width="wrap_content" android:layout_height="wrap_content"/> <TextView android:id="@+id/buts" android:layout_width="wrap_content" android:layout_height="wrap_content"/> <TextView android:id="@+id/points" android:layout_width="wrap_content" android:layout_height="wrap_content"/> </LinearLayout> Main.java package com.hadronanomaly.testtab; import java.util.ArrayList; import android.app.Activity; import android.os.Bundle; import android.widget.GridView; public class Main extends Activity { /** Called when the activity is first created. */ ArrayList<Equipe> equipes = new ArrayList<Equipe>(); public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); equipes.add(new Equipe(0, "blabla", "1", "1", "1", "1", "1", "1", "1")); equipes.add(new Equipe(0, "blublu", "1", "10", "1", "1", "1", "1", "1")); equipes.add(new Equipe(0, "blabla", "1", "1", "1", "1", "1", "1", "1")); equipes.add(new Equipe(0, "blublu", "1", "10", "1", "1", "1", "1", "1")); equipes.add(new Equipe(0, "blabla", "1", "1", "1", "1", "1", "1", "1")); equipes.add(new Equipe(0, "blublu", "1", "10", "1", "1", "1", "1", "1")); GridView gridview = (GridView) findViewById(R.id.gridview); gridview.setAdapter(new myAdapter(this, equipes)); } } MyAdapter.java package com.hadronanomaly.testtab; import java.util.ArrayList; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.TextView; public class myAdapter extends BaseAdapter { private ArrayList<Equipe> equipes; private LayoutInflater myInflater; public myAdapter (Context context, ArrayList<Equipe> _equipes) { this.myInflater = LayoutInflater.from(context); this.equipes = _equipes; } @Override public int getCount() { return this.equipes.size(); } @Override public Object getItem(int arg0) { return this.equipes.get(arg0); } @Override public long getItemId(int position) { return position; } public static class ViewHolder { TextView text01; TextView text02; TextView text03; TextView text04; TextView text05; TextView text06; TextView text07; TextView text08; ImageView iconeEquipe; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder; if (convertView == null) { convertView = myInflater.inflate(R.layout.affichageitem, null); holder = new ViewHolder(); holder.text01 = (TextView) convertView.findViewById(R.id.position); holder.text02 = (TextView) convertView.findViewById(R.id.nom); holder.text03 = (TextView) convertView.findViewById(R.id.joues); holder.text04 = (TextView) convertView.findViewById(R.id.victoires); holder.text05 = (TextView) convertView.findViewById(R.id.defaites); holder.text06 = (TextView) convertView.findViewById(R.id.egalites); holder.text07 = (TextView) convertView.findViewById(R.id.buts); holder.text08 = (TextView) convertView.findViewById(R.id.points); convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } holder.text01.setText(""+equipes.get(position).position); holder.text02.setText(equipes.get(position).nom); holder.text03.setText(equipes.get(position).joues); holder.text04.setText(equipes.get(position).victoires); holder.text05.setText(equipes.get(position).defaites); holder.text06.setText(equipes.get(position).egalites); holder.text07.setText(equipes.get(position).buts); holder.text08.setText(equipes.get(position).points); return convertView; } } Ce qui donne : Affichage Si vous avez une idée, je suis preneur ^^ Bonne journée Xero
CoD Posté(e) 22 novembre 2010 Posté(e) 22 novembre 2010 Et si dans ton fichier "affichageitems.xml" tu donnais des longueurs fixes aux TextView par ex : <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content"> <TextView android:id="@+id/position" android:layout_width="5dip" android:layout_height="wrap_content"/> <TextView android:id="@+id/nom" android:layout_width="50dip" android:layout_height="wrap_content"/> etc... Il doit y avoir une largeur max d'écran en "dip" commune à toutes résolutions d'écrans, le tout c'est que le total des tailles tes colonnes ne dépasse pas cette largeur maxi.
Xero Posté(e) 30 novembre 2010 Auteur Posté(e) 30 novembre 2010 XD je me sens con en voyant la simplicité de la solution ! Merci CoD! Avant de modifier le sujet en résolu, je voudrais savoir pourquoi tu trouves que c'est une mauvaise idée Pierre87 ? Merci de vos réponses :)
Pierre87 Posté(e) 30 novembre 2010 Posté(e) 30 novembre 2010 parce que les écrans ont tous des résolutions différentes?
CoD Posté(e) 2 décembre 2010 Posté(e) 2 décembre 2010 parce que les écrans ont tous des résolutions différentes? C'est bien pour ça que j'utilise le "dip" comme unité au lieu du pixel, ça donne une "quasi" indépendance au niveau de la résolution des écrans.
Pierre87 Posté(e) 2 décembre 2010 Posté(e) 2 décembre 2010 oui, mais non! :P les écrans ne font pas tous la même taille/dimension/résolution! même en dip! ok, une grande partie des téléphones ont une largeur de 320 dip en mode portrait (la hauteur varie souvent par contre) mais c'est CRADE de faire un code qui suppose que l'écran fait toujours 320 dip de large!
Recommended Posts
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.