拉动包含片段的主活动中的刷新

时间:2014-04-22 07:40:47

标签: android android-fragments pull-to-refresh

我用Google搜索了很多,但没有找到适合我的任何答案。

我想实现拉动刷新。我已经浏览了所有下面的链接,但是他们已经为Activity中的简单ListView或ScrollView提供了示例。

https://github.com/johannilsson/android-pulltorefresh

https://github.com/chrisbanes/ActionBar-PullToRefresh

http://guides.thecodepath.com/android/Implementing-Pull-to-Refresh

这里我有一个包含 4 Fragments 的活动,我想实现pull to refresh。我怎么能这样做。

非常感谢任何形式的帮助。

以下是我的活动XML代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@color/homePageBackground"
android:orientation="vertical" >

<fragment
    android:id="@+id/announcementHomefragment"
    android:name="in.test.app.AnnouncementFragment"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />

<ScrollView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@color/homePageBackground" >

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="15dp"
        android:background="@color/homePageBackground" >

        <TextView
            android:id="@+id/newsTitle"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_marginLeft="15dp"
            android:layout_marginTop="5dp"
            android:gravity="center"
            android:text="@string/new_list"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:textColor="@color/white"
            android:textStyle="bold" />

        <fragment
            android:id="@+id/newshomefragment"
            android:name="in.test.app.NewsFragment"
            android:layout_width="wrap_content"
            android:layout_height="265dp"
            android:layout_below="@id/newsTitle"
            android:layout_marginTop="-15dp" />

        <TextView
            android:id="@+id/productTitle"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@id/newshomefragment"
            android:layout_gravity="center"
            android:layout_marginLeft="15dp"
            android:layout_marginTop="5dp"
            android:gravity="center"
            android:text="@string/product_in_home"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:textColor="@color/white"
            android:textStyle="bold" />

        <fragment
            android:id="@+id/proCategoryhomefragment"
            android:name="in.test.app.CategoryFragment"
            android:layout_width="wrap_content"
            android:layout_height="250dp"
            android:layout_below="@id/productTitle"
            android:layout_marginTop="-15dp" />

        <TextView
            android:id="@+id/trainingTitle"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@id/proCategoryhomefragment"
            android:layout_gravity="center"
            android:layout_marginLeft="15dp"
            android:layout_marginTop="2dp"
            android:gravity="center"
            android:text="@string/trainings_in_home"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:textColor="@color/white"
            android:textStyle="bold" />

        <fragment
            android:id="@+id/trainingfragment"
            android:name="in.test.app.TrainingFragment"
            android:layout_width="wrap_content"
            android:layout_height="250dp"
            android:layout_below="@id/trainingTitle"
            android:layout_marginBottom="10dp"
            android:layout_marginTop="-15dp" />
    </RelativeLayout>
</ScrollView>

编辑:

现在我正在使用 SwipeRefreshLayout 。它工作正常。但是当我向下滚动我的滚动视图并试图上升它没有上升时,它不再工作它是令人耳目一新的。请建议我如何完成这件事。

1 个答案:

答案 0 :(得分:1)

只需创建一个扩展 SwipeRefreshLayout覆盖方法canChildScrollUp()的类。如果要向下滚动ListView,则返回true。

例如,

@override.
boolean canChildScrollUp()
{
return Listview.getFirstVisibleItemPostion()!=0;
}