在android中的CoordinatorLayout中的另一个视图下方定位视图

时间:2015-11-12 09:28:32

标签: android xml android-layout

我希望在我的xml文件中使用android.support.design.widget.CoordinatorLayoutandroid.support.design.widget.AppBarLayoutandroid.support.design.widget.CollapsingToolbarLayout。将视图放在另一个视图下面有什么可能性?

例如:位置ScrollView位于ImageView的{​​{1}}下方。

我的xml代码:

CoordinatorLayout

如何在<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> 下面设置ScrollView? TNX&lt; 3

1 个答案:

答案 0 :(得分:67)

我假设您正在尝试在CollapsingToolbarLayout内定位视图。 CollapsingToolbarLayout扩展FrameLayout,因此唯一的可能性是定位视图是利用视图边距和重力。在您的情况下,您可以定位ImageView,如:

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

如果您尝试将新ImageView直接添加到CoordinatorLayout,则可以使用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
/>