Создание «Выровненных по левому краю» и «Выровненных по правому краю» HorizontalScrollViews / Recyclerviews - PullRequest
0 голосов
/ 01 июня 2018

Это мой первый пост здесь, поэтому, пожалуйста, дайте мне знать, если я перефразирую свой вопрос каким-либо образом!

Мне было поручено создать пользовательский интерфейс для проверки чего-либо, и мои требования состоят в том, чтобы пользовательможет перемещаться по всему приложению, используя все направления (вверх, вниз, влево, вправо).Я довольно новичок в создании приложений для Android, поэтому полезны советы любого уровня.Даже если вы думаете, что я должен проектировать это по-другому, я все равно хотел бы научиться реализовывать это таким образом, как опыт обучения.

В настоящее время я создал прокручиваемый макет вкладок, где каждая вкладка содержит фрагмент.Цель состоит в том, чтобы каждый из этих фрагментов имел вертикальную прокрутку и содержал горизонтальные RecyclerViews или HorizontalScrollViews с равными интервалами при прокрутке фрагмента вниз.

Для начала, я не могу заставить вертикальную прокрутку работать вместе с горизонтальной прокруткой одновременно - использует ли она RecyclerViews или ScrollViews или что-то еще.Мои вкладки работают нормально и, кажется, работают вместе с HorizontalScrollView без каких-либо проблем.

Но, что еще более важно, я пытаюсь сделать «Выровненные по левому краю» и «Выровненные по правому краю» HorizontalScrollViews (или RecyclerViews),где каждый из них начинается на определенном расстоянии от соответствующей стороны экрана - так что один будет выходить с левой стороны, а следующий - с правой стороны экрана.Идея состоит в том, что изначально , вы можете проводить каждый из них только в одном направлении (влево или вправо), что становится очевидным для пользователя по тому, как они отображаются на экране.При прокрутке вниз будет чередоваться выравнивание по левому и правому краям.

Итак, две мои проблемы заключаются в следующем:

-Я не могу заставить вертикальную прокрутку работать вместе с горизонтальной прокруткой,внутри фрагмента прокручиваемой вкладки.Я был бы открыт для перехода на RecyclerView или что-то еще.

-Если я создаю HorizontalScrollView кнопок, я могу заставить его начать определенное расстояние от стороны, изменив его отступ, но он не прокручиваетсямимо этого дополнения.Мне бы хотелось, чтобы представление с прокруткой начиналось на определенном расстоянии от боковой части экрана, но также можно было прокручивать эту точку (чтобы она не просто исчезала при заполнении).

Вот мой xmlкод для фрагмента HorizontalScrollViews.Это очень просто, но может дать вам представление о том, что я имею в виду.Конечно, это выглядит не очень хорошо, но я буду беспокоиться об этом, как только у меня получится.

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="16dp"
android:orientation="vertical">

    <HorizontalScrollView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="50dp"
        android:paddingLeft="100dp">

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"

            android:backgroundTint="@android:color/holo_blue_light"
            android:text="Credit Cards"
            android:textColor="@android:color/black"
            />

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Card 1" />

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Card 2" />

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Card 3" />

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Card 4" />

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Card 5" />
    </LinearLayout>
</HorizontalScrollView>

    <HorizontalScrollView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="50dp"
        android:layoutDirection="rtl"
        android:paddingRight="100dp">

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content">

            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"

                android:backgroundTint="@android:color/holo_blue_light"
                android:text="Debit Cards"
                android:textColor="@android:color/black" />

            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Card 1" />

            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Card 2" />

            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Card 3" />

            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Card 4" />

            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Card 5" />
        </LinearLayout>
    </HorizontalScrollView>

    <HorizontalScrollView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="50dp"
        android:paddingLeft="100dp">

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content">

            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"

                android:backgroundTint="@android:color/holo_blue_light"
                android:text="Gift Cards"
                android:textColor="@android:color/black" />

            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Card 1" />

            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Card 2" />

            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Card 3" />
        </LinearLayout>
    </HorizontalScrollView>

    <HorizontalScrollView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="50dp"
        android:layoutDirection="rtl"
        android:paddingRight="100dp">

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content">

            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"

                android:backgroundTint="@android:color/holo_blue_light"
                android:text="Coupons"
                android:textColor="@android:color/black" />

            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Card 1" />

            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Card 2" />

            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Card 3" />

            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Card 4" />

            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Card 5" />
        </LinearLayout>
    </HorizontalScrollView>

</LinearLayout>
...