如何在FragmentLayout中看到屏幕的顶部位置?

时间:2016-07-12 05:00:53

标签: android android-layout android-framelayout

我将FrameLayout设置为父视图并设置属性滚动行为。向下滚动后如果用户触发OnBackPress 屏幕应该转到该视图的最顶部。我怎么能这样做?

<FrameLayout
      android:id="@+id/fragment_container"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
                    app:layout_behavior="@string/appbar_scrolling_view_behavior"/>

        <--ChildViews--->
</FrameLayout>

我尝试使用content_frame.scrollTo(0,0);但它现在正在工作。

1 个答案:

答案 0 :(得分:0)

首先将FrameLayout包装到ScrollView中,而不是调用content_frame.scrollTo(0,0),尝试ScrollView.scrollTo(0,0)

<ScrollView
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    >
  <FrameLayout
      android:id="@+id/fragment_container"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      app:layout_behavior="@string/appbar_scrolling_view_behavior"
      >

    <!--ChildViews -->
  </FrameLayout>
</ScrollView>

我注意到你可以使用CoordinatorLayout作为你的根视图,如果在这种情况下你最好使用android.support.v4.widget.NestedScrollView而不是ScrollView,因为NestedScrollView会委托触摸如果存在,则首先将事件发送到NestedScrollingParent。