0

我正在开发 android 中的社交网络应用程序,我使用QuiltViewLibrary制作 QuiltView 图像库。

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

两者都工作正常。现在我必须为组合任务实现这两个库,即 QuiltView GALLERY 中的 PULL TO REFRESH。

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

带有简单网格视图的 PullToRefresh 的 XML:

<!-- 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 库的 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>

请让我知道是否有人可以建议我一些东西。

4

2 回答 2

1

这很简单:

  • Chris Banes 的 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>
于 2013-12-17T06:30:10.323 回答
0

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

1. 通过扩展 PullToRefreshBase 类创建新的 PullToRefreshQuiltView 类。

只需创建一个扩展 PullToRefreshBase 的类您可以检查 PullToRefreshWebView 类来了解如何做到这一点。

2.在QuiltView的setup函数中使用scrollview

请参阅此链接的第 50 行 您可以将设置函数中的滚动视图更改为 pullToRefreshScrollView,或将此滚动视图添加到 ptr 视图。

3. 在 Handmark 的 PullToRefresh 或 android SwipeRefreshLayout 中使用 RecyclerView 和 GridLayoutManager

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

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

于 2015-12-24T09:38:40.397 回答