如何在scrollView中更改视图位置,将其固定在屏幕顶部

时间:2016-09-30 13:10:30

标签: android listview scrollview

我有一个scrollview,在scrollview里面我有项目,我想把它们中的一些固定到屏幕顶部(像stickyheaderListview)依赖于scrollView scrollY。我几乎尝试了一切。

如果我将标题项Y位置设置为零,则会更改位置,但之后它是scrollView中的第一项。

header.animate().y(0).setDuration(0).start(); // first attempt
header.setTop(0); // second attempt
header.animate().y(mScrollView.getLastItem().getBottom).setDuration(0).start();// third attempt

P.S

我的目标是在scrollView中创建stickyheader列表项 我在scrollview中尝试了这个library,但它没有用,所有项目都经常滚动

1 个答案:

答案 0 :(得分:1)

好吧,我认为在Android中可能有多种方法可以实现相同的用户界面。

1)首先,将滚动视图包装成这样的相对布局:

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:text="top here"
            android:id="@+id/text"
            />

        <ScrollView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@+id/text"
            >
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="sample"
                />
        </ScrollView>
    </RelativeLayout>

2)或者另一种方法是将主要布局划分为2个片段,一个片段显示始终位于顶部的视图,另一个片段将加载滚动视图的内容。

3)这篇文章可能是一个很好的参考 Android: pin TabLayout to top of Scrollview