无法初始化ScrollView以滚动到顶部

时间:2015-07-27 20:58:55

标签: android android-fragments scrollview

我的问题是我在片段中有一个ScrollView,当这个片段交换到容器中时,ScrollView最初位于中间(它似乎滚动到我在ScrollView内部的ListView)。我尝试过使用:

myScrollView.scrollTo(0, 0);

mainScrollView.fullScroll(ScrollView.FOCUS_UP);

但这并没有做任何事情。当我在片段的onCreateView方法中包含这些内容时,会执行此行,但是当手机上的布局变为可见时,它仍然会滚动到中间位置。

我在这里包含XML代码:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.test.johnnelson.tablayout.PingViewFragment">

<ScrollView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/pingScrollView"
    android:layout_alignParentTop="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentRight="true"
    android:layout_above="@+id/wallPostInput"
    android:padding="0dp">

    <RelativeLayout
        android:layout_height="wrap_content"
        android:layout_width="fill_parent"
        android:longClickable="false"
        android:id="@+id/pingViewRelativeLayout"
        android:padding="0dp">

        <com.parse.ParseImageView
            android:layout_width="50dp"
            android:layout_height="50dp"
            android:id="@+id/pingProfileImage"
            android:scaleType="centerCrop"
            android:cropToPadding="true"
            android:layout_alignParentTop="true"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true"
            android:layout_marginLeft="15dp"
            android:layout_marginStart="21dp"
            android:translationZ="1dp"
            android:layout_marginTop="120dp" />

        <Button
            style="?android:attr/buttonStyleSmall"
            android:layout_width="wrap_content"
            android:layout_height="30dp"
            android:text="attending"
            android:id="@+id/attendingButton"
            android:layout_alignBottom="@+id/pingProfileImage"
            android:layout_centerHorizontal="true"
            android:width="100dp"
            android:height="8dp"
            android:translationZ="1dp"
            android:layout_alignParentEnd="false"
            android:textSize="9dp" />

        <Button
            style="?android:attr/buttonStyleSmall"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="attend"
            android:id="@+id/attendButton"
            android:layout_alignBottom="@+id/attendingButton"
            android:layout_toRightOf="@+id/attendingButton"
            android:layout_toEndOf="@+id/attendingButton"
            android:layout_marginLeft="15dp"
            android:layout_alignTop="@+id/attendingButton"
            android:width="100dp"
            android:height="8dp"
            android:translationZ="1dp"
            android:textSize="9dp" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Title"
            android:id="@+id/pingTitleTextView"
            android:layout_below="@+id/pingProfileImage"
            android:layout_alignLeft="@+id/pingProfileImage"
            android:layout_alignStart="@+id/pingProfileImage"
            android:layout_alignParentRight="true"
            android:layout_alignParentEnd="true" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Start Time"
            android:id="@+id/pingStartTimeTextView"
            android:layout_below="@+id/pingTitleTextView"
            android:layout_alignRight="@+id/pingTitleTextView"
            android:layout_alignEnd="@+id/pingTitleTextView"
            android:layout_alignLeft="@+id/pingTitleTextView"
            android:layout_alignStart="@+id/pingTitleTextView" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="End Time"
            android:id="@+id/pingEndTimeTextView"
            android:layout_below="@+id/pingStartTimeTextView"
            android:layout_alignLeft="@+id/pingStartTimeTextView"
            android:layout_alignParentRight="true" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="New Text"
            android:id="@+id/pingLocationNameTextView"
            android:textColor="@color/PING_HYPERLINK_BLUE"
            android:layout_below="@+id/pingEndTimeTextView"
            android:layout_alignLeft="@+id/pingEndTimeTextView" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Description"
            android:id="@+id/pingDescriptionTextView"
            android:layout_below="@+id/pingLocationNameTextView"
            android:layout_alignLeft="@+id/pingLocationNameTextView"
            android:layout_alignParentRight="true"
            android:maxHeight="100dp" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/wallPosts"
            android:id="@+id/wallPostsTextView"
            android:layout_alignParentRight="true"
            android:layout_below="@+id/pingDescriptionTextView"
            android:layout_alignParentLeft="true"
            android:layout_marginTop="10dp"
            android:textSize="10sp"
            android:background="@color/PING_WHITE" />

        <ListView
            android:layout_width="wrap_content"
            android:layout_height="500dp"
            android:id="@+id/wallPostListView"
            android:nestedScrollingEnabled="true"
            android:layout_alignParentRight="false"
            android:layout_alignParentLeft="false"
            android:layout_alignParentBottom="true"
            android:minHeight="500dp"
            android:layout_below="@+id/wallPostsTextView" />

        <view
            android:layout_width="match_parent"
            android:layout_height="95dp"
            class="android.support.v4.view.ViewPager"
            android:id="@+id/pingViewPager"
            android:layout_alignParentLeft="false"
            android:layout_alignParentStart="false"
            android:translationZ="0dp"
            android:layout_above="@+id/attendingButton"
            android:layout_alignParentTop="true"
            android:layout_alignParentRight="false"
            android:padding="0dp"
            android:paddingLeft="0dp"
            android:paddingTop="0dp"
            android:paddingRight="0dp"
            android:paddingBottom="0dp"
            android:layout_alignWithParentIfMissing="false"/>

    </RelativeLayout>
</ScrollView>


<include
    layout="@layout/submit_wall_post"
    android:layout_width="match_parent"
    android:layout_height="50dp"
    android:layout_alignParentBottom="true"
    android:id="@+id/wallPostInput" />

</RelativeLayout>

有很多事情正在发生,所以我担心其他一些观点可能会偷走焦点或不允许ScrollView滚动到顶部?我需要滚动到顶部的ScrollView是@ + id / pingScrollView。底部包含的布局是聊天栏。

几天来一直困在这个简单的问题上。我真的很感激任何帮助!

注意:我已经阅读了一些关于我的问题的问题,例如thisthis,但是当我向我添加任何代码(这似乎是正确的,最简单的解决方案)时片段,在onCreateView(),onStart()或onResume()方法中,没有任何反应,ScrollView仍然滚动到中间。

0 个答案:

没有答案