Je travaille sur une application Android dans laquelle j'utilise CoordinatorLayout
, AppBarLayout
et CollapsingToolbarLayout
pour utiliser la fonctionnalité de réduction de la barre d'outils.
J'utilise NestedScrollView
dans la mise en page pour développer et réduire AppBarLayout
dans la même mise en page. Lorsque j'essaie de faire défiler vers le haut à partir du centre de l'écran, cela ne fonctionne pas, mais lorsque j'essaie de faire défiler l'écran du coin droit de l'écran, il défile en douceur.
Ci-dessous mentionné est mon fichier xml
layout.xml
<Android.support.v4.widget.NestedScrollView xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
xmlns:app="http://schemas.Android.com/apk/res-auto"
Android:fillViewport="true"
Android:fitsSystemWindows="true"
Android:paddingBottom="2dp"
Android:paddingLeft="5dp"
Android:paddingRight="5dp"
Android:paddingTop="5dp"
Android:layout_gravity="fill_vertical"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<RelativeLayout
Android:layout_width="match_parent"
Android:layout_height="match_parent">
<LinearLayout
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:background="@color/fragment_back_color"
Android:orientation="vertical">
<LinearLayout
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:orientation="horizontal"
Android:padding="5dp">
<ImageView
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_gravity="center"
Android:background="@drawable/new_recharge" />
<com.spiceladdoo.views.RobotTextviewRegular
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_gravity="center"
Android:layout_marginLeft="10dp"
Android:text="NEW PAYMENT"
Android:textColor="@color/offer_name_text_color" />
</LinearLayout>
<RelativeLayout
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:layout_marginLeft="5dp"
Android:layout_marginRight="5dp"
Android:background="@color/white"
Android:paddingBottom="20dp"
Android:paddingLeft="10dp"
Android:paddingRight="10dp"
Android:paddingTop="20dp">
<HorizontalScrollView
Android:id="@+id/hsv"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:layout_alignParentTop="true"
Android:fillViewport="true"
Android:measureAllChildren="false"
Android:scrollbars="none">
<LinearLayout
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_centerInParent="true"
Android:orientation="horizontal">
<LinearLayout
Android:id="@+id/wallet_layout"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:gravity="center"
Android:orientation="vertical">
<ImageView
Android:id="@+id/wallet_recharge"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_gravity="center"
Android:background="@drawable/wallet_recherge" />
<com.spiceladdoo.views.RobotTextviewRegular
Android:layout_width="65dp"
Android:layout_height="wrap_content"
Android:layout_gravity="center"
Android:layout_marginTop="5dp"
Android:gravity="center"
Android:text="WALLET"
Android:textColor="@color/offer_name_text_color"
Android:textSize="12sp" />
>
</LinearLayout>
<View
Android:layout_width="5dp"
Android:layout_height="20dp"
Android:background="@color/white" />
<LinearLayout
Android:id="@+id/prepaid_layout"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:gravity="center"
Android:orientation="vertical">
<ImageView
Android:id="@+id/prepaid_recharge"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_gravity="center"
Android:background="@drawable/prepaid_recherge" />
<com.spiceladdoo.views.RobotTextviewRegular
Android:layout_width="65dp"
Android:layout_height="wrap_content"
Android:layout_gravity="center"
Android:layout_marginTop="5dp"
Android:gravity="center"
Android:text="PREPAID"
Android:textColor="@color/offer_name_text_color"
Android:textSize="12sp" />
>
</LinearLayout>
<View
Android:layout_width="5dp"
Android:layout_height="20dp"
Android:background="@color/white" />
<LinearLayout
Android:id="@+id/postpaid_layout"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:gravity="center"
Android:orientation="vertical">
<ImageView
Android:id="@+id/postpaid_recharge"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_gravity="center"
Android:background="@drawable/postpaid_recherge" />
<com.spiceladdoo.views.RobotTextviewRegular
Android:layout_width="65dp"
Android:layout_height="wrap_content"
Android:layout_gravity="center"
Android:layout_marginTop="5dp"
Android:gravity="center"
Android:text="POSTPAID"
Android:textColor="@color/offer_name_text_color"
Android:textSize="12sp" />
>
</LinearLayout>
<View
Android:layout_width="5dp"
Android:layout_height="20dp"
Android:background="@color/white" />
<LinearLayout
Android:id="@+id/dth_layout"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:gravity="center"
Android:orientation="vertical">
<ImageView
Android:id="@+id/dth_recharge"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_gravity="center"
Android:background="@drawable/dth_recherge" />
<com.spiceladdoo.views.RobotTextviewRegular
Android:layout_width="65dp"
Android:layout_height="wrap_content"
Android:layout_gravity="center"
Android:layout_marginTop="5dp"
Android:gravity="center"
Android:text="DTH"
Android:textColor="@color/offer_name_text_color"
Android:textSize="12sp" />
>
</LinearLayout>
<View
Android:layout_width="5dp"
Android:layout_height="20dp"
Android:background="@color/white" />
<LinearLayout
Android:id="@+id/landline_layout"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:gravity="center"
Android:orientation="vertical">
<ImageView
Android:id="@+id/landline_recharge"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_gravity="center"
Android:background="@drawable/landline_recherge" />
<com.spiceladdoo.views.RobotTextviewRegular
Android:layout_width="65dp"
Android:layout_height="wrap_content"
Android:layout_gravity="center"
Android:layout_marginTop="5dp"
Android:gravity="center"
Android:text="LANDLINE"
Android:textColor="@color/offer_name_text_color"
Android:textSize="12sp" />
>
</LinearLayout>
<View
Android:layout_width="5dp"
Android:layout_height="20dp"
Android:background="@color/white" />
<LinearLayout
Android:id="@+id/datacard_layout"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:gravity="center"
Android:orientation="vertical">
<ImageView
Android:id="@+id/datacard_recharge"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_gravity="center"
Android:background="@drawable/datacard_recherge" />
<com.spiceladdoo.views.RobotTextviewRegular
Android:layout_width="65dp"
Android:layout_height="wrap_content"
Android:layout_gravity="center"
Android:layout_marginTop="5dp"
Android:gravity="center"
Android:text="DATACARD"
Android:textColor="@color/offer_name_text_color"
Android:textSize="12sp" />
>
</LinearLayout>
</LinearLayout>
</HorizontalScrollView>
</RelativeLayout>
<LinearLayout
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:orientation="horizontal"
Android:paddingBottom="10dp"
Android:paddingLeft="5dp"
Android:paddingRight="5dp"
Android:paddingTop="10dp">
<ImageView
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_gravity="center"
Android:background="@drawable/recent" />
<com.spiceladdoo.views.RobotTextviewRegular
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_gravity="center"
Android:layout_marginLeft="10dp"
Android:text="RECENT"
Android:textColor="@color/offer_name_text_color" />
</LinearLayout>
<ListView
Android:id="@+id/recent_recharge_list"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:layout_marginLeft="5dp"
Android:layout_marginRight="5dp">
</ListView>
</LinearLayout>
<FrameLayout xmlns:tools="http://schemas.Android.com/tools"
Android:id="@+id/recharge_container"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:visibility="visible"
tools:ignore="MergeRootFrame">
</FrameLayout>
</RelativeLayout>
</Android.support.v4.widget.NestedScrollView>
Le résultat souhaité est que lorsque j'essaie de faire défiler vers le haut depuis le centre de l'écran, cela devrait fonctionner comme un smmoth lorsque je défile vers le haut depuis le coin droit du mobile.
Veuillez regarder la vidéo mentionnée ci-dessous pour examiner le problème plus clairement
https://www.dropbox.com/s/gscfc8vfc7kkpxp/device-2015-12-30-160119.mp4?dl=
Je crois que je l'ai cloué:
Vous pouvez trouver le code source ici - n'hésitez pas à essayer;
J'ai pris comme exemple google\designlibdemo .
Voici à quoi ressemble mon Activity
:
<?xml version="1.0" encoding="utf-8"?>
<Android.support.v4.widget.DrawerLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:app="http://schemas.Android.com/apk/res-auto"
Android:id="@+id/drawer_layout"
Android:layout_height="match_parent"
Android:layout_width="match_parent"
Android:fitsSystemWindows="true">
<include layout="@layout/include_list_viewpager"/>
<Android.support.design.widget.NavigationView
Android:id="@+id/nav_view"
Android:layout_height="match_parent"
Android:layout_width="wrap_content"
Android:layout_gravity="start"
Android:fitsSystemWindows="true"
app:headerLayout="@layout/nav_header"
app:menu="@menu/drawer_view"/>
</Android.support.v4.widget.DrawerLayout>
Il héberge ViewPager
: include_list_viewpager.xml
:
<?xml version="1.0" encoding="utf-8"?>
<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="wrap_content"
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:layout_scrollFlags="scroll|enterAlways|snap"
app:contentScrim="?attr/colorPrimary"
app:expandedTitleMarginStart="48dp"
app:expandedTitleMarginEnd="64dp"
Android:fitsSystemWindows="true">
<ImageView
Android:id="@+id/image"
Android:src="@drawable/header_image"
Android:layout_width="match_parent"
Android:layout_height="200dp"
Android:scaleType="centerCrop"
Android:fitsSystemWindows="true"
app:layout_collapseMode="parallax"/>
<View
Android:background="#AA50AA00"
Android:layout_width="match_parent"
Android:layout_height="200dp"
app:layout_collapseMode="parallax"/>
<Android.support.v7.widget.Toolbar
Android:id="@+id/toolbar"
Android:layout_width="match_parent"
Android:title=""
Android:layout_height="?attr/actionBarSize"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
app:layout_collapseMode="pin" />
</Android.support.design.widget.CollapsingToolbarLayout>
<Android.support.design.widget.TabLayout
Android:id="@+id/tabs"
Android:background="#50AA00"
app:tabMode="scrollable"
app:tabIndicatorColor="#FFF"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content" />
</Android.support.design.widget.AppBarLayout>
<Android.support.v4.view.ViewPager
Android:id="@+id/viewpager"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
</Android.support.design.widget.CoordinatorLayout>
CollapsingToolbarLayout
hôtes Toolbar
(app:layout_collapseMode="pin"
) et au-dessus ImageView
(app:layout_collapseMode="parallax"
).
L'hébergé dans le fragment ViewPager a cette disposition:
<?xml version="1.0" encoding="utf-8"?>
<Android.support.v4.widget.NestedScrollView
xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
xmlns:app="http://schemas.Android.com/apk/res-auto"
Android:fillViewport="true"
Android:fitsSystemWindows="true"
Android:layout_gravity="fill_vertical"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<LinearLayout
Android:orientation="vertical"
Android:background="#DDD"
Android:layout_width="match_parent"
Android:layout_height="match_parent">
<LinearLayout
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:orientation="horizontal"
Android:padding="16dp">
<ImageView
Android:src="@drawable/mobile"
Android:layout_marginTop="2dp"
Android:layout_width="16dp"
Android:layout_height="16dp" />
<TextView
Android:text="@string/prepaid_recharge"
Android:layout_marginStart="16dp"
Android:layout_gravity="center_vertical"
Android:textColor="#000"
Android:fontFamily="sans-serif-medium"
Android:textSize="14sp"
Android:textAllCaps="true"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content" />
</LinearLayout>
........
<ListView
Android:id="@+id/recent_recharge_list"
Android:layout_width="match_parent"
Android:layout_height="match_parent"/>
</LinearLayout>
</Android.support.v4.widget.NestedScrollView>
Il a donc ce comportement app:layout_behavior="@string/appbar_scrolling_view_behavior"
et remplissage ViewPort
(Android:fillViewport="true"
)
Et en fait - c'est tout ce dont vous avez besoin. Fragment
classe est très standard:
public class RechargeFragment extends Fragment {
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
return inflater.inflate(R.layout.recharge_fragment, container, false);
}
}
Activity
est également resté très standard.
Encore une fois, vous pouvez trouver mon exemple de code ici .
NB! J'ai trouvé que cela fonctionne assez mal (pas du tout lisse) sur l'émulateur.
J'espère que ça aide.
essayez Android:clickable="true"
en vue enfant de NestedScrollView
Comme ci-dessous:
<Android.support.v4.widget.NestedScrollView
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:fillViewport="true"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<LinearLayout
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:orientation="vertical"
Android:clickable="true">
</LinearLayout>
</Android.support.v4.widget.NestedScrollView>
On dirait un doublon de this . Bien qu'il pointe vers un thread "résolu", l'autre est davantage lié à RecyclerView.
J'ai écrit mon comportement sur la base de solutions faites par Manolo Garcia et Kirill Boyarshinov à partir du fil de RecyclerView. Dans mon cas, onNestedFling()
n'a pas été appelé lors de la création du geste de lancer, donc j'ai piraté onNestedPreScroll()
. J'ai travaillé dans ViewPager avec NestedScroll aujourd'hui, je n'ai pas testé la solution ci-dessous dans différents scénarios (bien qu'elle soit basée sur un code similaire que j'ai écrit pour RecyclerView il y a un an).
Premier comportement mis à jour (ajoutez-le en xml en tant que app:layout_behavior="your.package.FlingBehavior">
Pour Android.support.design.widget.AppBarLayout
):
public final class FlingBehavior extends AppBarLayout.Behavior {
private static final String TAG = FlingBehavior.class.getName();
private static final int TOP_CHILD_FLING_THRESHOLD = 1;
private static final float OPTIMAL_FLING_VELOCITY = 3500;
private static final float MIN_FLING_VELOCITY = 20;
boolean shouldFling = false;
float flingVelocityY = 0;
public FlingBehavior() {
}
public FlingBehavior(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
public void onNestedPreScroll(CoordinatorLayout coordinatorLayout, AppBarLayout child, View target,
int velocityX, int velocityY, int[] consumed) {
super.onNestedPreScroll(coordinatorLayout, child, target, velocityX, velocityY, consumed);
if (velocityY > MIN_FLING_VELOCITY) {
shouldFling = true;
flingVelocityY = velocityY;
} else {
shouldFling = false;
}
}
@Override
public void onStopNestedScroll(CoordinatorLayout coordinatorLayout, AppBarLayout abl, View target) {
super.onStopNestedScroll(coordinatorLayout, abl, target);
if (shouldFling) {
Log.d(TAG, "onNestedPreScroll: running nested fling, velocityY is " + flingVelocityY);
onNestedFling(coordinatorLayout, abl, target, 0, flingVelocityY, true);
}
}
@Override
public boolean onNestedFling(CoordinatorLayout coordinatorLayout, AppBarLayout child, View target,
float velocityX, float velocityY, boolean consumed) {
if (target instanceof RecyclerView && velocityY < 0) {
Log.d(TAG, "onNestedFling: target is recyclerView");
final RecyclerView recyclerView = (RecyclerView) target;
final View firstChild = recyclerView.getChildAt(0);
final int childAdapterPosition = recyclerView.getChildAdapterPosition(firstChild);
consumed = childAdapterPosition > TOP_CHILD_FLING_THRESHOLD;
}
// prevent fling flickering when going up
if (target instanceof NestedScrollView && velocityY > 0) {
consumed = true;
}
if (Math.abs(velocityY) < OPTIMAL_FLING_VELOCITY) {
velocityY = OPTIMAL_FLING_VELOCITY * (velocityY < 0 ? -1 : 1);
}
Log.d(TAG, "onNestedFling: velocityY - " + velocityY + ", consumed - " + consumed);
return super.onNestedFling(coordinatorLayout, child, target, velocityX, velocityY, consumed);
}
}
Maintenant, il devrait défiler en douceur, mais le contenu de NestedScrollView (et RecyclerView) peut défiler avant que AppBarLayout ne soit réduit, ce qui peut sembler plus étrange. Pour le résoudre suivez cette réponse . Apportez de petites modifications pour utiliser la méthode fullScroll(ScrollView.FOCUS_UP)
au lieu de scrollTo(0, 0)
sinon vous pouvez remarquer de petits scintillements lors des défilements rapides, ici:
AppBarLayout appBarLayout = findViewById(...);
appBarLayout.addOnOffsetChangedListener(new AppBarLayout.OnOffsetChangedListener() {
@Override
public void onOffsetChanged(AppBarLayout appBarLayout, int verticalOffset) {
shouldScroll = Math.abs(verticalOffset) == appBarLayout.getTotalScrollRange();
}
});
NestedScrollView nestedScrollView = findViewById(...);
nestedScrollView.setOnScrollChangeListener(new NestedScrollView.OnScrollChangeListener() {
@Override
public void onScrollChange(NestedScrollView v, int scrollX, int scrollY, int oldScrollX, int oldScrollY) {
if (!shouldScroll)
nestedScrollView.fullScroll(ScrollView.FOCUS_UP);
}
});
Après cela, je l'ai appelé une fin, mais vous voudrez peut-être continuer pour le faire défiler encore plus facilement comme dans Google Play, il y a (je pense non résolu) un fil à ce sujet ici .
J'ai eu à peu près le même genre de problème lorsque je travaillais avec CoordinatorLayout
ayant AppbarLayout
, CollapsingToolbarLayout
et NestedScrollView
comme vues enfants.
Le code suivant est une pièce de travail directement à partir de mon espace de travail de projet.
<?xml version="1.0" encoding="utf-8"?>
<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="wrap_content"
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="wrap_content"
app:contentScrim="?attr/colorPrimary"
app:layout_scrollFlags="scroll|exitUntilCollapsed">
<ImageView
Android:id="@+id/cover_pic"
Android:layout_width="match_parent"
Android:layout_height="256dp"
Android:scaleType="centerCrop"
app:layout_collapseMode="parallax"
Android:src="@drawable/cookin"/>
<Android.support.v7.widget.Toolbar
Android:id="@+id/mToolbar"
Android:layout_width="match_parent"
Android:layout_height="?attr/actionBarSize"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
app:layout_collapseMode="pin"/>
</Android.support.design.widget.CollapsingToolbarLayout>
<Android.support.design.widget.TabLayout
Android:id="@+id/tabLayout"
Android:layout_width="match_parent"
Android:layout_height="?attr/actionBarSize"
Android:layout_gravity="bottom"
Android:background="?attr/colorPrimary"
app:tabMode="scrollable"/>
</Android.support.design.widget.AppBarLayout>
<Android.support.v4.widget.NestedScrollView
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:fillViewport="true"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<Android.support.v4.view.ViewPager
Android:id="@+id/tab_viewpager"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
</Android.support.v4.widget.NestedScrollView>
<RelativeLayout
Android:layout_width="match_parent"
Android:layout_height="match_parent">
<LinearLayout
Android:layout_alignParentBottom="true"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:orientation="vertical">
<Android.support.design.widget.FloatingActionButton
Android:id="@+id/fab_phone"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_gravity="bottom|end"
Android:layout_marginRight="@dimen/fab_margin"
Android:visibility="invisible"
app:backgroundTint="@color/colorFAB2"
app:elevation="6dp"
Android:layout_margin="5dp"
app:pressedTranslationZ="12dp"
Android:src="@drawable/ic_phone_white_24dp" />
<Android.support.design.widget.FloatingActionButton
Android:id="@+id/fab_book"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_gravity="bottom|end"
Android:layout_margin="5dp"
Android:layout_marginRight="@dimen/fab_margin"
Android:visibility="invisible"
app:elevation="6dp"
app:backgroundTint="@color/colorFAB1"
app:pressedTranslationZ="12dp"
Android:src="@drawable/ic_receipt_white_24dp" />
<Android.support.design.widget.FloatingActionButton
Android:id="@+id/fab_add"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_gravity="bottom|end"
app:elevation="6dp"
app:backgroundTint="@color/colorAccent"
app:pressedTranslationZ="12dp"
Android:layout_margin="@dimen/fab_margin"
Android:src="@drawable/ic_add_white_24dp" />
</LinearLayout>
</RelativeLayout>
</Android.support.design.widget.CoordinatorLayout>