CoordinatorLayout с поведением NestedScrollView - PullRequest
0 голосов
/ 23 октября 2018

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

Я подумал об этом и решил сделать это с помощью CoordinatorLayout, AppBarLayout / CollapsingToolbarLayout и NestedScrollView с CardView.Звучит отлично для этой проблемы, верно?

С моим настоящим XML у меня уже есть панель инструментов, изображение и функция прокрутки.

Однако функция прокрутки не на 100% такая, как я хотел,Прежде всего, прокрутка вниз невозможна, поскольку около середины экрана (вероятно, из-за android:layout_height="275dp") можно прокручивать только вверх.(и конечно свернуть панель инструментов).Моя главная цель - «открыть» изображение в полноэкранном режиме.У вас есть идеи, как я могу добиться такого поведения?Может быть, контроль% в .java?

Также есть одна досадная ошибка, но я могу пока оставить ее, попробуйте помочь, если она также дает вам некоторое условие OCD

Я пытался добавитьпрозрачное свойство для моего LinearLayout, но оно не сработало.

Обычная прокрутка: Текущая прокрутка

Ошибка "панели", так как она близка к разрушению: изображение глючной панели

Мой весь XML:

<android.support.design.widget.CoordinatorLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/annonce.main.coordinator"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:ignore="RtlHardcoded"
    >

    <android.support.design.widget.AppBarLayout
        android:id="@+id/flexible.example.appbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
        >

        <android.support.design.widget.CollapsingToolbarLayout
            android:id="@+id/flexible_example_collapsing"
            android:layout_width="match_parent"
            android:layout_height="275dp"
            app:title="Mosteiro dos Jerónimos"
            app:expandedTitleMarginBottom="94dp"
            app:layout_scrollFlags="scroll|exitUntilCollapsed"
            app:expandedTitleTextAppearance="@style/CollapsingTextAppearance.Inverse"
            app:contentScrim="?attr/colorPrimary"
            >

            <ImageView
                android:layout_width="fill_parent"
                android:layout_height="match_parent"
                android:src="@drawable/mosteiro_dos_jeronimos"
                android:scaleType="centerCrop"
                />

            <android.support.v7.widget.Toolbar
                android:id="@+id/flexible.example.toolbar"
                android:layout_width="match_parent"
                android:layout_height="30dp"
                android:background="@null"
                app:layout_collapseMode="pin"
                app:title="Mosteiro dos Jerónimos"
                style="@style/ToolBarWithNavigationBack"
                />
        </android.support.design.widget.CollapsingToolbarLayout>
    </android.support.design.widget.AppBarLayout>

    <android.support.v4.widget.NestedScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:scrollbars="none"
        app:behavior_overlapTop="78dp"
        app:layout_behavior="@string/appbar_scrolling_view_behavior"
        >

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical"
            >

            <android.support.v7.widget.CardView
                android:id="@+id/flexible.example.cardview"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                app:contentPaddingBottom="16dp"
                app:contentPaddingLeft="16dp"
                app:contentPaddingRight="16dp"
                app:cardCornerRadius="16dp"
                app:cardBackgroundColor="@android:color/white"
                app:cardElevation="4dp"
                >

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:orientation="vertical"
                    >

                    <View
                        android:id="@+id/myRectangleView"
                        android:layout_width="40dp"
                        android:layout_height="4dp"
                        android:layout_gravity="center"
                        android:layout_marginTop="4dp"
                        android:background="@drawable/rectangle"/>

                    <TextView
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:text="Lisboa"
                        android:textAppearance="@style/TextAppearance.Header"
                        style="@style/TextComponent.ItemRow"
                        />

                    <TextView
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:fontFamily="sans-serif-light"
                        android:lineSpacingExtra="8dp"
                        android:textSize="16sp"
                        android:text="@string/lorem"
                        />
                </LinearLayout>
            </android.support.v7.widget.CardView>
        </LinearLayout>
    </android.support.v4.widget.NestedScrollView>

    <android.support.design.widget.FloatingActionButton
        android:id="@+id/flexible.example.fab"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginRight="32dp"
        android:elevation="8dp"
        android:src="@drawable/ic_adb_24dp"
        app:layout_anchor="@id/flexible.example.cardview"
        app:layout_anchorGravity="top|right|end"
        tools:ignore="RtlHardcoded"
        />
</android.support.design.widget.CoordinatorLayout>

1 Ответ

0 голосов
/ 23 октября 2018

Я думаю, что ваш макет в порядке (работает на моей стороне), но, возможно, поведение, которое вы хотите, больше похоже на поведение Bottomsheet.

Вы смотрели на это?

По сути, это позволит вам создавать что-то вроде карт Google, поэтому вы сможете прокручивать их так, как вам хочется.

Вот учебник, чтобы лучше понять, что это такое.как.

Пожалуйста, дайте мне знать, если это то, что вы ищете.

...