Autore Topic: Problema visualizzazione ListView  (Letto 749 volte)

Offline bakiko

  • Utente junior
  • **
  • Post: 74
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC One
  • Sistema operativo:
    Windows 7
Problema visualizzazione ListView
« il: 08 Febbraio 2014, 11:46:27 CET »
0
Salve ragazzi, sono alle prese con un problema diciamo banale.
Ho creato un layout con un ImageView, delle TextView, una ListView ed un button.Ovviamente tutto gira e viene visualizzato tranne la listView.
Ovvero viene visualizzato soltanto un dato della listView (che invece ne contiene 3/5).Ecco il codice:
Codice (Java): [Seleziona]
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#01267f"
    tools:context=".Articolo" >

    <ScrollView
        android:id="@+id/scrollViewArticolo"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/Email"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true" >

        <LinearLayout
            android:id="@+id/datiArticolo"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical" >

            <ImageView
                android:id="@+id/imageView"
                android:layout_width="fill_parent"
                android:layout_height="238dp"
                android:src="@drawable/logosplash" />

            <TextView
                android:id="@+id/text01"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textColor="#b5b4b3"
                android:textStyle="bold"
                android:textAppearance="?android:attr/textAppearanceLarge" />

            <TextView
                android:id="@+id/text02"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textColor="#b5b4b3" />

       <LinearLayout
           android:id="@+id/layout2"
           android:layout_width="fill_parent"
           android:layout_height="wrap_content"
           android:orientation="vertical" >

            <ListView
                android:id="@+id/listViewDettagli"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_marginEnd="10dp" >

            </ListView>

        </LinearLayout>
        </LinearLayout>
       
    </ScrollView>

    <Button
        android:id="@+id/Email"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:background="@drawable/email" />

    <Button
        android:id="@+id/Chiama"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:background="@drawable/telefono" />

</RelativeLayout>

Grazie a tutti....

Offline GabMarioPower

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 606
  • Respect: +153
    • Github
    • Google+
    • gabrielemariotti
    • GabMarioPower
    • Mostra profilo
  • Play Store ID:
    GAB+MARIO+DEV
  • Sistema operativo:
    Ubuntu 14.04 , Win 10
Re:Problema visualizzazione ListView
« Risposta #1 il: 08 Febbraio 2014, 18:28:14 CET »
0
Mai mettere una ListView dentro una ScrollView.
Non è il problema della visualizzazione, non si deve proprio fare.

Offline bakiko

  • Utente junior
  • **
  • Post: 74
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC One
  • Sistema operativo:
    Windows 7
Re:Problema visualizzazione ListView
« Risposta #2 il: 08 Febbraio 2014, 23:22:30 CET »
0
Mai mettere una ListView dentro una ScrollView.
Non è il problema della visualizzazione, non si deve proprio fare.

Ti ringrazio Mario, di sicuro non lo farò più :P (non lo sapevo). Sapresti darmi un consiglio su come risolvere il problema.Grazie e buona serata

Offline GabMarioPower

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 606
  • Respect: +153
    • Github
    • Google+
    • gabrielemariotti
    • GabMarioPower
    • Mostra profilo
  • Play Store ID:
    GAB+MARIO+DEV
  • Sistema operativo:
    Ubuntu 14.04 , Win 10
Re:Problema visualizzazione ListView
« Risposta #3 il: 09 Febbraio 2014, 00:04:20 CET »
+1
Innanzitutto ti motivo la risposta sopra.
android - How can I put a ListView into a ScrollView without it collapsing? - Stack Overflow
Leggi la risposta, ma soprattutto il primo commento di Romain Guy.
Credo che nessuno possa conoscere meglio l'argomento di chi ha scritto la ListView.

Le soluzioni possono essere diverse.
E' indispensabile avere i pulsanti in basso? Perchè non usare l'action bar per esempio?

Un'altra soluzione è quella di costruirti una lista con un LinearLayout.
Qualcosa di questo tipo:

Codice (Java): [Seleziona]
public class MyListLayout extends LinearLayout implements
                View.OnClickListener {

        private Adapter list;
        private View.OnClickListener mListener;

        public MyListLayout(Context context) {
                super(context);
        }

        public MyListLayout(Context context, AttributeSet attrs, int defStyle) {
                super(context, attrs, defStyle);

        }

        public MyListLayout(Context context, AttributeSet attrs) {
                super(context, attrs);
        }

        @Override
        public void onClick(View v) {
                if (mListener!=null)
                        mListener.onClick(v);
        }

        public void setList(Adapter list) {
                this.list = list;
               
                //Popolute list
                if (this.list!=null){
                        for (int i=0;i<this.list.getCount();i++){
                                View item= list.getView(i, null,null);
                                this.addView(item);
                        }
                }
               
        }

        public void setmListener(View.OnClickListener mListener) {
                this.mListener = mListener;
        }
}


Offline bakiko

  • Utente junior
  • **
  • Post: 74
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC One
  • Sistema operativo:
    Windows 7
Re:Problema visualizzazione ListView
« Risposta #4 il: 10 Febbraio 2014, 18:50:50 CET »
0
Innanzitutto ti motivo la risposta sopra.
android - How can I put a ListView into a ScrollView without it collapsing? - Stack Overflow
Leggi la risposta, ma soprattutto il primo commento di Romain Guy.
Credo che nessuno possa conoscere meglio l'argomento di chi ha scritto la ListView.

Le soluzioni possono essere diverse.
E' indispensabile avere i pulsanti in basso? Perchè non usare l'action bar per esempio?

Un'altra soluzione è quella di costruirti una lista con un LinearLayout.
Qualcosa di questo tipo:

Codice (Java): [Seleziona]
public class MyListLayout extends LinearLayout implements
                View.OnClickListener {

        private Adapter list;
        private View.OnClickListener mListener;

        public MyListLayout(Context context) {
                super(context);
        }

        public MyListLayout(Context context, AttributeSet attrs, int defStyle) {
                super(context, attrs, defStyle);

        }

        public MyListLayout(Context context, AttributeSet attrs) {
                super(context, attrs);
        }

        @Override
        public void onClick(View v) {
                if (mListener!=null)
                        mListener.onClick(v);
        }

        public void setList(Adapter list) {
                this.list = list;
               
                //Popolute list
                if (this.list!=null){
                        for (int i=0;i<this.list.getCount();i++){
                                View item= list.getView(i, null,null);
                                this.addView(item);
                        }
                }
               
        }

        public void setmListener(View.OnClickListener mListener) {
                this.mListener = mListener;
        }
}

Ti ringrazio Mario adesso ho capito l'errore della listView. Ho risolto in questo modo: notando che la listView si riempiva di 5 oggetti solo in due casi, ho fatto in modo di eliminare questi due casi, così da inserire tutto nel mio layout in maniera statica (inserendo semplicemente tutti i vari componenti della listView in un relativeLayout). Se sarò obbligato ad usare una lista, sicuramente seguirò l'altro tuo consiglio, ovvero quello di costruirmi una lista con un LinearLayout...Ti ringrazio ;)