当用户在scrollview

时间:2016-04-24 15:02:49

标签: android android-layout

我正在尝试在用户滚动时更改RelativeLayout的高度,因此它会平滑地向上移动。它有点工作,但它的所有闪烁和故障。

我尝试使用setTranslationY,但这不会使用RelativeLayout移动scrollview。

int top = mScrollView.getScrollY();
int maxRelative = formulas.dpToPx(250);
int actualRelative = (int)((1.0-((float)top)/300.0)*((float)maxRelative));
RelativeLayout.LayoutParams layout_description = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT,
                            actualRelative);
mCollapsingLayout.setLayoutParams(layout_description);
                    mCollapsingLayout.requestLayout();

这就是它的外观

http://imgur.com/7PL6Yt5

如果您在滚动时如何更好地了解如何缩小RelativeLayout,那么它会受到赞赏。

编辑:这是我的xml

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="@dimen/app_bar_height"
    android:id="@+id/collapsing.view">

    <ImageView
        android:id="@+id/collapsing.view.image"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:src="@drawable/theflash"
        android:tint="#7F000000"
        android:scaleType="centerCrop"/>
    <ImageButton
        android:id="@+id/favorite.button"
        android:layout_width="70dp"
        android:layout_height="70dp"
        android:background="?android:attr/selectableItemBackground"
        android:scaleType="fitCenter"
        android:layout_centerHorizontal="true"
        android:layout_alignParentBottom="true"
        android:layout_marginBottom="30dp"
        android:src="@drawable/favorite_button"
        />
    <FrameLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:paddingBottom="30px">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="The Flash"
            android:textColor="#fff"
            android:textSize="25sp"
            android:layout_centerInParent="true"
            />
    </FrameLayout>
</RelativeLayout>

<ScrollView
    android:id="@+id/detail.scrollview"
    android:layout_below="@+id/collapsing.view"
    android:layout_width="match_parent"
    android:fillViewport="true"
    android:layout_height="match_parent">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">
</LinearLayout>
</ScrollView>

2 个答案:

答案 0 :(得分:1)

您需要将RelativeLayout放在ScrollView内并再次尝试setTranslationY - 它应该有效

答案 1 :(得分:1)

有几种方法可以解决这个问题,包括现成的this one类,基本上可以做你想要的。您可能需要删除缩小文本的部分,等等,但它就在您需要的地方

enter image description here