Frage

Auf meinem Bildschirm habe ich eine Listenansicht und eine Schaltfläche. Meine Liste hat wie 8 Artikel. Ich möchte, dass mein Bildschirm scrollen soll, wenn diese beiden Elemente nicht einpassen. Ich möchte nicht, dass meine Liste scrollen kann, sondern das vollständige Layout einschließlich sowohl Liste als auch Schaltfläche. Wenn ich das unten stehende Layout verwende, wird es nur auf dem Element in der Liste angezeigt, und ich muss in die Liste scrollen, um zum nächsten Element zu gehen.

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent" android:layout_height="fill_parent" >
<LinearLayout
    android:orientation="vertical" android:layout_width="fill_parent"
    android:layout_height="fill_parent">

        <ListView android:id="@android:id/list"
            android:layout_height="wrap_content" android:layout_width="fill_parent"
            android:background="@drawable/round_background" />

        <Button android:text="Search" android:id="@+id/carSearchButton"
            android:layout_gravity="center_horizontal" android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
</LinearLayout>
</ScrollView>
War es hilfreich?

Lösung 2

Die Art von Art von meiner Frage beantwortet, aber ich wollte mehr als eine Steuerung unter der Liste auch auf einem anderen Bildschirm, den ich 2 Listen wollte. Um die Bildlaufleiste mit der Listenansicht zu haben, musste ich die Höhe der Liste beheben.

Andere Tipps

Sie können keine Listansicht in eine Scrollview einfügen. Von Gridview oder in welcher Ansicht, die das Scrolling auf derselben Achse wie die Scrollview bewirkt. Auf diese Weise würde das Framework nicht wissen, welche Ansicht das Bildlaufereignis verarbeiten sollte. Dieses Layout erzeugt keinen Fehler, wenn Sie es kompilieren, aber es funktioniert nicht richtig.

Was Sie hier tun sollten: Lassen Sie die äußere ScrollView ab, Sie brauchen sie nicht. Verwenden Sie nur eine Listansicht und fügen Sie die Schaltfläche mit .addfoter () zum einfachsten Weg zum einfachsten Weg hinzu. Auf diese Weise wird Ihre Schaltfläche als Listenelement angezeigt, aber Sie müssen nicht mit einem benutzerdefinierten Adapter herumspielen.

Wenn Ihr Problem mit ListView ist, das nicht in ScrollView scrollt, ist hier die Lösung, um dies zu verarbeiten.

Implementieren Sie Ihre eigene ListView -Erweiterung der ListView -Klasse und implementieren Sie die folgende Methode darin.

 

@Override public boolean onTouchEvent(MotionEvent ev) { int action = ev.getAction(); switch (action) { case MotionEvent.ACTION_DOWN: // Disallow ScrollView to intercept touch events. this.getParent().requestDisallowInterceptTouchEvent(true); break; case MotionEvent.ACTION_UP: // Allow ScrollView to intercept touch events. this.getParent().requestDisallowInterceptTouchEvent(false); break; } super.onTouchEvent(ev); return true; }

Lassen Sie mich wissen, ob dies Ihr Problem löst?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top