5 Stimmen

Android: Autoscrolling HorizontalScrollView

Ich verwende den folgenden Code, um Registerkarten zu simulieren, und da es mehr Registerkarten gibt, als in der Breite untergebracht werden können, kann der Benutzer nach links oder rechts blättern, um eine Registerschaltfläche sichtbar zu machen. Es funktioniert alles, aber ich biete dem Benutzer auch die Möglichkeit, zwischen den Registerkarten zu wechseln, indem er mit dem Finger nach links oder rechts über den Inhalt der Registerkarte streicht. Auch hier funktioniert es. Aber wenn ich zur ganz rechten Registerkarte wechsle, ist die entsprechende Schaltfläche kaum sichtbar. Ich möchte die Tabelle innerhalb der Tabelle automatisch scrollen HorizontalScrollView damit die Schaltfläche für die ausgewählte Registerkarte sichtbar ist, aber wenn ich die HorizontalScrollView.smoothScrollTo(300, 0) passiert nichts. Es spielt keine Rolle, wie hoch ich den ersten Wert einstelle. x Parameter wird sich nie etwas bewegen (ja, ich habe einen Algorithmus zur Berechnung der genauen Position).

Hier der XML-Code für die Schaltflächen zum Scrollen der Registerkarten

<HorizontalScrollView android:layout_width="fill_parent"
    android:background="@color/tabs_header" android:layout_height="55dip"
    android:scrollbars="none" android:id="@+id/tabsButtonView">
    <TableLayout android:id="@+id/TableLayout01" android:layout_width="fill_parent"
        android:layout_height="fill_parent">
        <TableRow android:id="@+id/TableRow01" android:layout_width="fill_parent" android:layout_weight="1"
            android:layout_height="0dip" android:paddingTop="5dip" android:paddingLeft="3dip">
            <ImageButton android:src="@drawable/linkup_logo_small" android:id="@+id/tabBtt0"
                android:layout_width="wrap_content" android:layout_marginLeft="2dip" android:layout_marginRight="2dip"
                android:layout_height="fill_parent" android:padding="5dip" android:background="@drawable/tab_selected"></ImageButton>
            <ImageButton android:src="@drawable/simplyhired_small" android:id="@+id/tabBtt1"
                android:layout_height="fill_parent" android:layout_width="fill_parent" android:layout_marginLeft="2dip"
                android:layout_marginRight="2dip" android:padding="5dip" android:background="@drawable/tab_normal"></ImageButton>
            <ImageButton android:src="@drawable/indeedcom_small" android:id="@+id/tabBtt2"
                android:layout_width="fill_parent" android:layout_height="fill_parent" android:padding="5dip"
                android:layout_marginLeft="2dip" android:layout_marginRight="2dip" android:background="@drawable/tab_normal"></ImageButton>
            <ImageButton android:src="@drawable/careerbuilder_logo_small" android:id="@+id/tabBtt3"
                android:layout_width="fill_parent" android:layout_height="fill_parent" android:padding="5dip"
                android:layout_marginLeft="2dip" android:layout_marginRight="2dip" android:background="@drawable/tab_normal"></ImageButton>
        </TableRow>
    </TableLayout>
</HorizontalScrollView>

2voto

Bostone Punkte 35692

Mit HorizontalScrollView ist alles in Ordnung und der automatische Bildlauf funktioniert einwandfrei. Es war einfach eine Sequenz der Initialisierung, die in meinem Code fehlgeschlagen ist. Fall geschlossen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X