Position view below another view in CoordinatorLayout in android

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

62936 次浏览

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
/>