Positionsansicht unter einer anderen Ansicht in CoordinatorLayout in Android

69

Ich mag verwenden android.support.design.widget.CoordinatorLayout, android.support.design.widget.AppBarLayout, android.support.design.widget.CollapsingToolbarLayoutin meiner XML - Datei. Welche Möglichkeiten gibt es, eine Ansicht unter einer anderen Ansicht zu positionieren?

Zum Beispiel: Position ScrollViewdarunter ImageViewin CoordinatorLayout.

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

Wie setze ScrollViewich unten ein ImageView? TNX <3

Dre.Dre666
quelle

Antworten:

95

Ich gehe davon aus, dass Sie versuchen, Ansichten innerhalb des zu positionieren CollapsingToolbarLayout. Die CollapsingToolbarLayoutAusdehnung FrameLayout, so dass die einzige Möglichkeit zum Positionieren von Ansichten darin besteht, den Sichtrand und die Schwerkraft zu verwenden. In Ihrem Fall könnten Sie ein ImageViewLike positionieren :

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

Wenn Sie versuchen, das Neue ImageViewdirekt zum hinzuzufügen CoordinatorLayout, können Sie einen Anker verwenden :

<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
/>
Andreas Wenger
quelle
1
Wie positioniere ich eine Ansicht rechts von einer anderen Ansicht?
BlackHawk