LinearLayout перекрывая CoordinatorLayout поддержки
это первый раз, когда я использую CoordinatorLayout, и я действительно не понимаю, как это работает.
мой LinearLayout перекрывает мою панель инструментов, как если бы я был в FrameLayout или RelativeLayout, и я не знаю, как сказать ему идти ниже ( например, android:layout_below с RelativeLayout )
вот мой код:
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/main_content"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.design.widget.AppBarLayout
android:id="@+id/appbar"
android:layout_width="match_parent"
android:layout_height="192dp"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/collapsing_toolbar"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:contentScrim="?attr/colorPrimary"
app:expandedTitleMarginEnd="64dp"
app:expandedTitleMarginStart="48dp"
app:layout_scrollFlags="scroll|exitUntilCollapsed">
<ImageView
android:id="@+id/backdrop"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
android:src="@drawable/logo2"
app:layout_collapseMode="pin" />
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:layout_collapseMode="pin"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/appbar"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin">
.... Very Large Form ...
</LinearLayout>
</android.support.design.widget.CoordinatorLayout>
другое сомнение: почти все примеры, которые я видел, были с CoordinateLayout управление RecyclerView. Мой макет не является RecyclerView, просто очень длинная форма. Есть ли смысл делать это таким образом?
3 ответов
попробуйте вложить содержимое в NestedScrollView. Не забудьте включить XML-тег layout_behavior.
<android.support.v4.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<!-- Your scrolling content -->
</android.support.v4.widget.NestedScrollView>
дополнительные ресурсы: http://developer.android.com/reference/android/support/design/widget/AppBarLayout.html
поздний ответ, но это все равно может помочь кому-то.
вложить все chidren CoordinatorLayout
на LinearLayout
, вертикальной ориентации.
У меня получилось.
от developer.android.com
"CoordinatorLayout является супер-питание FrameLayout. CoordinatorLayout предназначен для двух случаев первичного использования: Как декор приложения верхнего уровня или макет chrome Как контейнер для конкретного взаимодействия с одним или несколькими дочерними представлениями Задав поведение дочерних представлений CoordinatorLayout, вы можете обеспечить множество различных взаимодействий внутри одного родителя, и эти представления также могут взаимодействовать друг с другом. Классы представления можно указать поведение по умолчанию при использовании в качестве дочернего элемента CoordinatorLayout с помощью аннотации DefaultBehavior. Поведение может быть использовано для реализации различных взаимодействий и дополнительных модификаций макета, начиная от выдвижных ящиков и панелей до размахиваемых элементов и кнопок, которые прилипают к другим элементам при их перемещении и анимации. Дети CoordinatorLayout могут иметь якорь. Этот идентификатор представления должен соответствовать произвольному потомку CoordinatorLayout, но он не может быть заякоренный ребенок сам или потомок заякоренного ребенка. Это можно использовать для размещения плавающих представлений относительно других произвольных панелей содержимого."
таким образом, вы можете изменить корневой вид на LinearLayout(вертикальная ориентация) или использовать scrollview, который будет упорядочивать детей линейно.