[Android Control] Grundlegende Nutzungsaufzeichnung von HorizontalScrollView (Anpassung der Bildlaufleiste)

Erinnerungen​​​​​​​​

Darstellungen

Einführung

Vorsichtsmaßnahmen

Grundlegende Attribute

Einstellungen der Bildlaufleiste

Ob die Bildlaufleiste immer angezeigt wird

Passen Sie den Schiebehintergrund der Bildlaufleiste und den Hintergrund der Bildlaufleiste an

Legen Sie die Breite der Bildlaufleiste fest

Legen Sie den Abstand der Bildlaufleiste fest

Andere allgemeine Einstellungen

Scrollgeschwindigkeit einstellen

Beispiel für einen Layout-Code

Zusammenfassen


Darstellungen

Einführung

HorizontalScrollView ist eine horizontal scrollende Beschriftung. Vertikales Scrollen ist das ScrollView-Tag

HorizontalScrollView ist ein für das Layout verwendeter Container, der die Ansichtshierarchie platzieren kann, die Benutzer mithilfe von Bildlaufleisten anzeigen können, sodass die Ansichtsstruktur größer als der Bildschirm des Mobiltelefons sein kann. HorizontalScrollView ist ein FrameLayout (Rahmenlayout), dessen untergeordnete Elemente sich beim Scrollen als Ganzes bewegen, und das untergeordnete Element selbst kann ein Layout-Manager mit einer komplexen hierarchischen Struktur sein. Eine häufige Anwendung sind Elemente in horizontaler Ausrichtung, bei denen der Benutzer scrollen kann, um die horizontal angeordneten Elemente auf der obersten Ebene anzuzeigen.

Es eignet sich sehr gut zum unendlichen Verschieben von Szenen und Bildern, für mehrere benutzerdefinierte Tastenlayouts unten (unterstützt Inkrementierung) usw.

Vorsichtsmaßnahmen

  • HorizontalScrollView unterstützt nur die horizontale Bildlaufanzeige
  • ScrollView und HorizontalScrollView können nur ein untergeordnetes Element haben, sodass Sie ein LinearLayout-Layout hinzufügen und andere Schaltflächen und andere Dinge in dieses LinearLayout einfügen können. Dann hat das untergeordnete Element von ScrollViewd nur ein LinearLayout und die untergeordneten Elemente von LinearLayout sind nicht begrenzt.
  • Es kann nicht gleichzeitig mit ListView verwendet werden, da ListView über eigene Bildlaufleisteneinstellungen verfügt. Das Wichtigste ist, dass die gleichzeitige Verwendung beider Listen dazu führt, dass ListView bei einigen wichtigen Optimierungen fehlschlägt, wenn Sie eine große Liste anzeigen müssen. Der Grund für diesen Fehler liegt darin, dass HorizontalScrollView ListView dazu zwingt, den von HorizontalScrollView selbst bereitgestellten unendlichen Container zu verwenden, um die vollständige Liste anzuzeigen.
  • TextView verfügt außerdem über eine eigene Bildlaufleiste, sodass ScrollView nicht erforderlich ist. Aber beide können gleichzeitig verwendet werden und das Ergebnis ist eine Textansicht, die in einem größeren Container angezeigt wird.

Grundlegende Attribute

Bildlaufleisten
Stellen Sie die Anzeige der Bildlaufleiste ein: keine (versteckt), horizontal (horizontal), vertikal (vertikal).


scrollbarFadeDuration
Legen Sie die Zeit für den Ausblendeffekt der Bildlaufleiste (von vorhanden über langsames Ausblenden bis zum Verschwinden) in Millisekunden fest. In Android 2.2 verschwindet die Bildlaufleiste nach dem Scrollen und kommt nach dem Scrollen wieder heraus. In den Versionen 1.5 und 1.6 wird sie immer angezeigt.


scrollbarSize
Legt die Breite der Bildlaufleiste fest.


scrollbarStyle
Legen Sie den Stil und die Position der Bildlaufleiste fest. Einstellwerte: insideOverlay, insideInset, OutsideOverlay, OutsideInset


scrollbarThumbHorizontal
Legt den Zeichenbereich der horizontalen Bildlaufleiste fest.


scrollbarThumbVertical
Legt den Zeichenbereich der vertikalen Bildlaufleiste fest.


scrollbarTrackHorizontal
Legt die Zeichenfarbe des Hintergrunds (Spur) der horizontalen Bildlaufleiste fest


soundEffectsEnabled
Legen Sie fest, ob beim Klicken oder Berühren Soundeffekte zu hören sind


fadeScrollbars
Ob die Bildlaufleiste immer angezeigt wird: false wird immer angezeigt, true wird automatisch ausgeblendet

overScrollMode
Es gibt insgesamt 3 Gleitmodi:
nie
setOverScrollMode(View.OVER_SCROLL_NEVER)
Stellen Sie diesen Modus ein und gleiten Sie nach dem anderen weiter bis zur Grenze. Ein Lichtbogen erscheint
immer
setOverScrollMode(View.OVER_SCROLL_ALWAYS)
Stellen Sie diesen Modus ein und gleiten Sie nach dem Gleiten weiter die Grenze. Es wird immer einen Lichtbogen geben
ifContentScrolls
setOverScrollMode(View.OVER_SCROLL_IF_CONTENT_SCROLLS)
Stellen Sie diesen Modus ein, falls vorhanden recycleview Wenn der Inhalt verschoben werden kann, führt das Verschieben bis zur Grenze und das weitere Verschieben dazu, dass ein Lichthof erscheint. Wenn der Inhalt in der Recyclingansicht nicht verschoben werden kann, wird durch das Verschieben bis zur Grenze und das weitere Verschieben kein Lichthof angezeigt .
 

Einstellungen der Bildlaufleiste

Ob die Bildlaufleiste immer angezeigt wird

„False“ wird immer angezeigt, „True“ wird automatisch ausgeblendet

Passen Sie den Schiebehintergrund der Bildlaufleiste und den Hintergrund der Bildlaufleiste an

Einstellungen für den verschiebbaren Hintergrund der Bildlaufleiste:
android:scrollbarThumbHorizontal= "@drawable/shape_main_bottom_scroll_bar"
shape_main_bottom_scroll_bar.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <solid android:color="@color/white" />
    <corners android:radius="360dp" />
</shape>

Hintergrundeinstellung der Bildlaufleiste:
android:scrollbarTrackHorizontal="@drawable/shape_main_bottom_scroll_bg_bar"
shape_main_bottom_scroll_bg_bar.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <solid android:color="#357AD5" />
    <corners android:radius="360dp" />
</shape>

Legen Sie die Breite der Bildlaufleiste fest

android:scrollbarSize="6dp"

Legen Sie den Abstand der Bildlaufleiste fest

Verwenden Sie paddingBottom in HorizontalScrollView oder dessen Steuerhöhe (layout_height), layout_marginTop usw., um die Zeit- und Distanzsteuerung flexibel zu nutzen

Andere allgemeine Einstellungen

Scrollgeschwindigkeit einstellen

Dies stellt uns keine Methode zur Verfügung, die direkt festgelegt werden kann. Wir müssen ScrollView selbst erben und dann eine öffentliche void fling (int VelocityY)-Methode überschreiben:

@Override
public void fling(int velocityY) {
    super.fling(velocityY / 2);    //速度变为原来的一半
}

Beispiel für einen Layout-Code

<HorizontalScrollView
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:scrollbarThumbHorizontal= "@drawable/shape_main_bottom_scroll_bar"
                android:scrollbarTrackHorizontal="@drawable/shape_main_bottom_scroll_bg_bar"
                android:fadeScrollbars="false"
                android:overScrollMode="never"
                >
                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    >
                    <Button
                        android:id="@+id/historyMainSysBtn"
                        style="@style/main_bottom_btn_style"
                        android:background="@mipmap/gongnengicon4"
                        android:layout_marginLeft="0dp"
                        android:text="历史呼叫"
                        />

                    <Button
                        android:id="@+id/handleMainSysBtn"
                        style="@style/main_bottom_btn_style"
                        android:background="@mipmap/gongnengicon5"
                        android:text="办理中"
                        />
                    <Button
                        android:id="@+id/callToNumberMainSysBtn"
                        style="@style/main_bottom_btn_style"
                        android:background="@drawable/szgw_skip_number_btn"
                        android:text="过号"
                        />
                    <Button
                        android:id="@+id/callTransferMainSysBtn"
                        style="@style/main_bottom_btn_style"
                        android:background="@mipmap/gongnengicon7"
                        android:text="呼叫移动"
                        />
                    <Button
                        android:id="@+id/specialCallMainSysBtn"
                        style="@style/main_bottom_btn_style"
                        android:background="@mipmap/gongnengicon8"
                        android:text="特呼"
                        />
                    <Button
                        android:id="@+id/pushMessageMainSysBtn"
                        style="@style/main_bottom_btn_style"
                        android:background="@mipmap/gongnengicon9"
                        android:text="消息推送"
                        />
                
                </LinearLayout>
            </HorizontalScrollView>

Zusammenfassen

Nach der einfachen Verwendung gibt es jetzt immer mehr Steuerelemente und sie werden immer leistungsfähiger, insbesondere mit dem Aufkommen von Androidx und anderen Steuerelementen, aber jedes Steuerelement hat sein am besten geeignetes Szenario.

Nur zuzusehen und zu tippen ist nutzlos
Nach dem Lesen müssen Sie es üben
Sie müssen den Code eingeben
Machen Sie unbedingt Versuch und Irrtum.
Das ist sinnvolles Lernen

Supongo que te gusta

Origin blog.csdn.net/piyangbo/article/details/126620129
Recomendado
Clasificación