web-dev-qa-db-fra.com

comment définir la hauteur d'un élément ListView

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:

enter image description here

et sur Galaxy Nexus 7: enter image description here

comment dois-je définir la hauteur des éléments de la liste de diffusion ???

10
Erfan Bagheri

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>
24
Yaroslav Mytkalyk
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(?)

5
BaiJiFeiLong

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.

3
Procurares

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.

0
Ed Kung