1. Nimm jetzt an unserem 2. ADVENT-Gewinnspiel teil - Alle Informationen findest Du hier!

ListView update nachdem Selector veraendert wurde

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von Robhuhn, 03.02.2011.

  1. Robhuhn, 03.02.2011 #1
    Robhuhn

    Robhuhn Threadstarter Neuer Benutzer

    Beiträge:
    1
    Erhaltene Danke:
    0
    Registriert seit:
    03.02.2011
    Hallo zusammen,

    mein Problem besteht darin, dass ich die hoehe der Zellen in einer ListView im nachhinein vergroeßer und dadurch bekomme ich in der ListView eine Scrollbar, wo keine sein muss. Die ListView hat auch mit hoeheren items genug Platz, um vollstaendig angezeigt zu werden.

    Ich habe also eine ListView und an das ItemLayout einen Selector gehaengt, um die regulaeren items zu definieren. Regulaer sind in meinem Fall alle außer dem letzten item.
    (list_item.xml)
    Code:
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/listItem"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        [B]android:background="@drawable/list_selector"[/B]>
    . 
    . 
    .
    
    In meinem CustomCursorAdapter fange ich das letzte Item in der Liste ueber den Cursor ab:
    Code:
    @Override
        public View newView(Context context, Cursor cursor, ViewGroup parent)
        {
            LayoutInflater inflater = LayoutInflater.from(context);
            View v = inflater.inflate(layout, parent, false);
    
            String title = cursor.getString(cursor.getColumnIndex("title"))
                    .toUpperCase();
            TextView textView = (TextView) v.findViewById(R.id.listTextView);
            textView.setText(title);
    
            if (cursor.isLast())
            {
                v.setBackgroundResource(R.drawable.list_selector[B]_last[/B]);
            }
    
            return v;
        }
    
    Der Selector (_last) setzt im Item einen background, der hoeher ist als die anderen und vergroessert den Content in der ListView, wodurch der Scroller entsteht.

    Ich suche schon seit Stunden nach einer Loesung und nichts von dem was ich probiert hab, hat funktioniert. Urspruenglich dachte ich an etwas wie "item.invalidate()", aber es blieb leider alles unveraendert.

    Kennt jemand von euch eine Loesung die ListView erneut rendern zu lassen oder manuell die Hoehe anzupassen?

    Vielen Dank schonmal ;)
     

Diese Seite empfehlen