Я новичок в программировании Android, и у меня возникла проблема с пользовательским интерфейсом. Моя цель - достичь чего-то близкого к этому: желаемый макет
Я подумал об этом и решил сделать это с помощью CoordinatorLayout, AppBarLayout / CollapsingToolbarLayout и NestedScrollView с CardView. Звучит отлично для этой проблемы, правда?
С моим настоящим XML у меня уже есть панель инструментов, изображение и функция прокрутки.
Однако функция прокрутки не на 100%, как я хотел. Во-первых, прокрутку вниз невозможно, так как в середине экрана (вероятно, из-за android:layout_height = "275dp") прокрутка возможна только вверх. (и, конечно, свернуть панель инструментов). Моя основная цель - «открыть» изображение на весь экран. Вы хоть представляете, как мне добиться такого поведения? Может быть, контролировать% в .java?
Также есть одна досадная ошибка, но я могу пока оставить ее, просто попытайтесь помочь, если она также дает вам некоторую ОКР.
Я попытался добавить свойство прозрачности к своему 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>
Я думаю, что ваш макет в порядке (работает на моей стороне), но, возможно, поведение, которое вы хотите, больше похоже на поведение нижнего листа.
В основном это позволит вам использовать что-то вроде карт Google, так что вы сможете прокручивать, как хотите.
Вот руководство, чтобы лучше понять, на что это похоже.
Пожалуйста, дайте мне знать, если это то, что вы ищете.