J'ai un ListActivity que je veux changer la taille d'élément se rapportent à la taille de dispositif
public class MainActivity extends ListActivity
{
.
.
.
setListAdapter(new ArrayAdapter<String>(MainActivity.this,
Android.R.layout.simple_list_item_1,mainMenuItems));
}
sa ma ListActivity sur la galaxie Nexus S:
et sur Galaxy Nexus 7:
comment dois-je définir la hauteur des éléments de la liste de diffusion ???
La hauteur ListView
items correspond à la hauteur du contenu de la présentation, par exemple Android.R.layout.simple_list_item_1
height. Si vous voulez une hauteur différente, créez un fichier XML et mettez un attribut Android:layout_height
ou Android:minHeight
.
Ceci est un simple_list_item_1
modifié qui fait référence à votre valeur
<TextView xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:id="@Android:id/text1"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:textAppearance="?android:attr/textAppearanceListItemSmall"
Android:gravity="center_vertical"
Android:paddingStart="?android:attr/listPreferredItemPaddingStart"
Android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
Android:paddingLeft="?android:attr/listPreferredItemPaddingLeft"
Android:paddingRight="?android:attr/listPreferredItemPaddingRight"
Android:minHeight="@dimen/your_defined_minumum_height"/>
et dans votre dimen.xml
<dimen name="your_defined_minumum_height">48dp</dimen>
ListView lvLogs = new ListView(this);
lvLogs.setAdapter(new ArrayAdapter<String>(this, Android.R.layout.simple_list_item_1, logs) {
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = super.getView(position, convertView, parent);
TextView textView = ((TextView) view.findViewById(Android.R.id.text1));
textView.setMinHeight(0); // Min Height
textView.setMinimumHeight(0); // Min Height
textView.setHeight(44); // Height
return view;
}
});
Remarque: MinHeight et MinimumHeight est requis !!!
Définissez la hauteur minimale entre 0 et 20 (ou plus): setMinHeight(?)
+ setMinimumHeight(?)
Ensuite, le TextView dans ListView aura une hauteur normale (inférieure à la valeur par défaut du ListView)
Si vous voulez spécifier la hauteur en pixel, utilisez setHeight(?)
Vous devez créer votre propre fichier de présentation personnalisé pour chaque élément de ListView. Là, vous pouvez éditer ce que vous voulez et vous pouvez obtenir de nombreux avantages.
Personnalisez un adaptateur pour votre ListView
avec les informations de screenHeight (H). Étant donné que vous souhaitez que votre écran affiche 9 colonnes (éléments), vous pouvez spécifier la hauteur de chacune d’elles en H/9. Ce faisant, vous pouvez contrôler avec précision l'apparence de votre ListView
sur tous les appareils.