Position view below another view in CoordinatorLayout in android

AndroidXmlAndroid Layout

Android Problem Overview


I want use android.support.design.widget.CoordinatorLayout , android.support.design.widget.AppBarLayout , android.support.design.widget.CollapsingToolbarLayout in my xml file. What are the possibilities to position a view below another view?

for example : position ScrollView beneath ImageView in CoordinatorLayout.

my xml code :

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/background_color"
    tools:context="com.tellfa.smsbox.activities.postShow_Page">

    <android.support.design.widget.CoordinatorLayout
        android:id="@+id/post_show_coordinator"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <android.support.design.widget.AppBarLayout
            android:id="@+id/app_bar_layout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

            <android.support.design.widget.CollapsingToolbarLayout
                android:id="@+id/post_show_collapsing_toolbar_layout"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                app:contentScrim="?attr/colorPrimary"
                app:layout_scrollFlags="scroll|enterAlways"
                >

                <ImageView
                    android:id="@+id/post_picture_image"
                    android:layout_width="fill_parent"
                    android:layout_height="200dp"
                    android:scaleType="centerCrop"
                    android:src="@drawable/cover_menu_bg2"
                    android:visibility="visible"
                    app:layout_collapseMode="parallax" />

                <android.support.v7.widget.Toolbar
                    android:id="@+id/post_show_app_bar"
                    android:layout_width="match_parent"
                    android:layout_height="?attr/actionBarSize"
                    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
                    app:layout_collapseMode="pin">

                    <ImageView
                        android:id="@+id/post_show_fav_image"
                        android:layout_width="25dp"
                        android:layout_height="25dp"
                        android:layout_gravity="right"
                        android:layout_marginRight="10dp"
                        android:alpha="0.7"
                        android:src="@drawable/favorite_post_un" />

                    <ImageView
                        android:id="@+id/post_show_share_image"
                        android:layout_width="25dp"
                        android:layout_height="25dp"
                        android:layout_gravity="right"
                        android:layout_marginRight="10dp"
                        android:alpha="0.7"
                        android:src="@drawable/abc_ic_menu_share_mtrl_alpha" />

                    <ImageView
                        android:id="@+id/post_show_report_image"
                        android:layout_width="25dp"
                        android:layout_height="25dp"
                        android:layout_gravity="right"
                        android:layout_marginRight="10dp"
                        android:alpha="0.7"
                        android:padding="2dp"
                        android:src="@drawable/post_report" />

                </android.support.v7.widget.Toolbar>

                <RelativeLayout
                    android:id="@+id/post_show_space"
                    android:layout_width="fill_parent"
                    android:layout_height="?attr/actionBarSize"
                    android:layout_below="@+id/post_picture_image"
                    android:visibility="gone" />

                <ScrollView
                    android:id="@+id/post_text_layout"
                    style="@style/scrollbar_shape_style"
                    android:layout_width="fill_parent"
                    android:layout_height="140dp"
                    android:layout_gravity="bottom"
                    app:layout_collapseMode="parallax">

                    <RelativeLayout
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:background="@color/category_text">

                        <com.tellfa.smsbox.components.tellfa_TextView_en
                            android:id="@+id/post_text_text"
                            android:layout_width="fill_parent"
                            android:layout_height="fill_parent"
                            android:layout_marginBottom="2dp"
                            android:layout_marginLeft="5dp"
                            android:layout_marginRight="5dp"
                            android:text="@string/connect_info"
                            android:textColor="@color/top_user_bg"
                            android:textSize="18sp" />

                    </RelativeLayout>

                </ScrollView>

            </android.support.design.widget.CollapsingToolbarLayout>

        </android.support.design.widget.AppBarLayout>


    </android.support.design.widget.CoordinatorLayout>

</RelativeLayout>

How to set ScrollView below in ImageView? TNX <3

Android Solutions


Solution 1 - Android

I assume you are trying to position views inside of the CollapsingToolbarLayout. The CollapsingToolbarLayout extends FrameLayout, so the only possibility is to position views is to utilize view margin and gravity. In your case you could position a ImageView like:

<ImageView
    android:layout_width="match_parent"
    android:layout_height="100dp"
    android:layout_marginTop="140dp" <-height of the ScrollView
/>

If you are trying to add the new ImageView directly to the CoordinatorLayout you can utilize a anchor:

<ImageView
    android:layout_width="match_parent"
    android:layout_height="100dp"
    app:layout_anchor="@+id/post_text_layout" <-view to anchor the imageview
    app:layout_anchorGravity="bottom" <- specifies edge of the anchor that should be used
    android:layout_gravity="bottom" <- how to position this view relatively to the anchoring position
/>

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionDre.Dre666View Question on Stackoverflow
Solution 1 - AndroidAndreas WengerView Answer on Stackoverflow