在Android中使用Pull to Refresh进行QuiltView Gallery?

时间:2013-12-17 06:16:48

标签: android pull-to-refresh quiltview

我正在开发一个Android社交网络应用程序,我使用 QuiltViewLibrary 制作QuiltView图像库。

在同一个应用程序中,我使用了GridView的 HANDMARKS Pull to Refresh库

两者都运转良好。现在我必须为组合任务实现两个库,即QuiltView GALLERY中的PULL TO REFRESH。

我得到的问题是将两个完全不同的LIBRARIES的XML结合起来。

PullToRefresh的XML,带有简单的GRID VIEW:

<!-- The PullToRefreshGridView replaces a standard GridView widget. -->
    <com.handmark.pulltorefresh.library.PullToRefreshGridView
        xmlns:ptr="http://schemas.android.com/apk/res-auto"
        android:id="@+id/pull_refresh_grid"
        android:layout_height="fill_parent"
        android:layout_width="fill_parent"
        android:numColumns="auto_fit"
        android:verticalSpacing="1dp"
        android:horizontalSpacing="1dp"
        android:columnWidth="100dp"
        android:stretchMode="columnWidth"
        android:gravity="fill"
        ptr:ptrMode="both"
        ptr:ptrDrawable="@drawable/ic_launcher" />

</LinearLayout>

QuiltView Gallery的XML:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:quilt="http://schemas.android.com/apk/res/com.tv.photos"
    android:id="@+id/FrameLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@android:color/white" >

    <com.tv.photos.QuiltView
        android:id="@+id/quilt"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:padding="5dip" >
    </com.tv.photos.QuiltView>

</FrameLayout>

如果有人可以建议我,请告诉我。

2 个答案:

答案 0 :(得分:1)

这很简单:

  • Chris Banes&#39; pulltorfresh库支持ScrollView
  • QuiltView库只是GridLayout的扩展(不是GridView或任何其他适配器类)

QuiltView的实例放在PullToRefreshScrollView的实例中。示例javaxml

不应该比这更复杂:

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

    <com.handmark.pulltorefresh.library.PullToRefreshScrollView
        xmlns:ptr="http://schemas.android.com/apk/res-auto"
        android:id="@+id/pull_refresh_scrollview"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" >

        <com.tv.photos.QuiltView
            android:id="@+id/quilt"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:padding="5dip" />

    </com.handmark.pulltorefresh.library.PullToRefreshScrollView>

</LinearLayout>

答案 1 :(得分:0)

您可以继续使用handmark的pulltorefresh库并创建一个pulltorefresh视图,该视图可以在其中使用quiltview。 由于QuiltView扩展了FrameLayout,你不能直接在handmark的拉动中使用它来刷新,但你面前有3个选项:

<强> 1。通过扩展PullToRefreshBase类创建新的PullToRefreshQuiltView类。

只需创建一个扩展PullToRefreshBase的类 您可以查看PullToRefreshWebView类以了解如何执行此操作。

<强> 2。使用QuiltView的设置功能中的scrollview

See line 50 of this link 您可以将setup函数中的scrollview更改为pullToRefreshScrollView,也可以将此scrollView添加到ptr视图中。

第3。在Handmark&#39; PullToRefresh或android SwipeRefreshLayout中使用RecyclerView和GridLayoutManager

另一种选择是使用带有GridLayoutManager的RecyclerView(看起来像GridLayoutManager Span Size RecycleView的东西)在handmark&#39;的pulltorefresh或android的SwipeRefreshLayout中。

有关SwipeRefreshLayout的更多信息,请查看android文档。