10

实际上我的目标是在 android 中实现 ListViewItem Swipe。我已经尝试过了,stackoverflow 有几个例子可以让你的 ListViewSwipe。例子。

简单的滑动手势到活动教程?

从该列表中滑动一项时在列表视图中显示按钮

一点是每个人都在提供代码,没有人解释正在发生的事情。

然后我问了它的问题Android列表视图右/左滑动就像@CommonsWare用SwipeListView库回答的通话记录,它有一个流畅的流程然后是接受的答案。接受的答案也很好,我目前只使用它。

这是图书馆http://www.androidviews.net/2013/03/swipelistview/ 它为您提供这样的列表视图

在此处输入图像描述

我已经尝试了超过 50 次来运行 github 上提供的示例应用程序https://github.com/47deg/android-swipelistview-sample但每次我都面临新问题。目前即将到来的例外是

05-22 15:35:19.392: E/AndroidRuntime(980): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.fortysevendeg.android.swipelistview.SwipeListView" on path: /data/app/com.fortysevendeg.android.swipelistview-2.apk

我不知道发生了什么我检查了构建路径,还包括库,在 stackoverflow 聊天中询问了很多人但没有得到任何帮助。

实际上,在互联网上,我已经向这么多人询问过它的实现没有一个单一的教程。所以我想知道是否有人使用过这个库,请写一个适当的答案如何预先使用它所以与我一起,其他未来的读者也可以从中受益。

或者是否有任何其他库可以执行来实现这种功能。

正如@CommonsWare 所建议的那样。我已经给作者写了一封电子邮件,也写了一个使用它的教程。

4

5 回答 5

12

最后,我设法将 Android-SwipeListView 库 47Degrees 集成到我自己的应用程序中。

奇迹般有效。感谢 47Degrees 编写了如此精彩的一段代码。

解决方案:

什么不行?!

在 res/values 中包含 JAR 作为依赖项和 attrs.xml 或在项目中将 SwipeListView 库引用为 lib 依赖项不起作用。

什么有效?!

在您的应用程序包中包含以下类。请务必将这些类中的包名更正为您的包名

  • SwipeListView.java
  • SwipeListViewListener.java
  • SwipeListViewListenerBase.java
  • SwipeListViewTouchListener.java

将以下 xml 包含到您的应用程序 res/values 文件夹中

  • attrs.xml

现在您可以按如下方式定义和使用 SwipeListView

<au.com.your.package.SwipeListView
        xmlns:swipe="http://schemas.android.com/apk/res-auto"
        android:id="@+id/swipe_listview"
        android:listSelector="#00000000"
        android:layout_width="match_parent"
        android:layout_height="match_parent"        
        swipe:swipeFrontView="@+id/front"
        swipe:swipeBackView="@+id/back"
        swipe:swipeActionLeft="reveal"
        swipe:swipeActionRight="choice"
        swipe:swipeMode="both"
        swipe:swipeCloseAllItemsWhenMoveList="true"
        swipe:swipeOpenOnLongPress="true"
        swipe:swipeAnimationTime="100"
        swipe:swipeOffsetLeft="50dp"
        swipe:swipeDrawableChecked="@drawable/item_selected"
        swipe:swipeDrawableUnchecked="@drawable/item_unselected"
   />

您可以使用与SwipeListView github 站点上的示例中显示的相同的活动代码。

您需要从上面的代码中更正一些导入。此外,您需要将Jake Wharton 的 NineOldAndroids作为 lib 依赖项包含在您的项目中。

于 2013-11-17T22:59:31.147 回答
2

最简单的测试是将整个项目复制到项目中。我看到它在资源中只有 attr.xml,所以它不会那么难做,也不会让你的项目变脏。试试看。直接复制/粘贴到/src

这应该是一个 Android 库项目,您应该这样附加它。您遇到的错误有时会由于某些愚蠢的原因而发生,我不知道何时在 /libs 中添加库(不需要以这种方式在 BuildPath 中引用)。

在这种特定情况下,该项目只有在您将其连接为库项目而不是 JAR 时才能工作。

希望这可以帮助。

这个库也是一个 Maven 项目。你需要有 maven for android setup 才能构建它。或将其转换回常规项目。

于 2013-05-22T11:13:00.927 回答
2

正确引用所有库后,我将 XML 更改为引用 SwipeListView,如下所示:

 <main.java.com.fortysevendeg.android.swipelistview.SwipeListView
      xmlns:swipe="http://schemas.android.com/apk/res-auto"
      android:id="@+id/example_lv_list"
      android:layout_width="fill_parent"
      android:layout_height="wrap_content"
      android:listSelector="#00000000"
      swipe:swipeActionLeft="reveal"
      swipe:swipeActionRight="reveal"
      swipe:swipeAnimationTime="10"
      swipe:swipeBackView="@+id/back"
      swipe:swipeCloseAllItemsWhenMoveList="true"
      swipe:swipeFrontView="@+id/front"
      swipe:swipeMode="right"
      swipe:swipeOffsetLeft="80dip"
      swipe:swipeOffsetRight="80dip"
      swipe:swipeOpenOnLongPress="false" />
于 2013-05-22T11:17:08.330 回答
0

我有同样的问题。

java.lang.ClassNotFoundException: Didn't find class "com.fortysevendeg.android.swipelistview.SwipeListView"

要解决这个问题,您需要在 Properties > Android > Library > Add... 中导入库... GDroid 的解决方案对我不起作用。

提示 1:将库复制到项目的同一工作区或文件夹,eclipse 在将项目库导入其他文件夹时出现问题。这篇文章帮助我解决了这个问题:https ://stackoverflow.com/a/5167294/2554730

提示2:如果你正在寻找项目库,因为Android Studio的项目不起作用,然后尝试在Android Studio中打开项目库,完成操作后你必须到项目的文件夹中寻找

gen-external-apklibs > com.fortysevendeg.android_swipelistview_1.0-20130701.103547-12

这是包含 Eclipse 项目的文件夹。导入这个项目,然后粘贴到文件夹 libs 中(如果没有 libs 文件夹...创建一个)

android-support-v4.jar 和 Nineoldandroids-2.4.0.jar

这些 .jars 应该可以修复您的错误。

于 2014-11-20T20:00:30.357 回答
0

尝试将以下内容添加到 build.grandle

repositories {
    mavenCentral()
    flatDir {
        dirs 'libs'
    }
    maven { url 'http://clinker.47deg.com/nexus/content/groups/public' }
}
于 2014-11-18T11:20:36.723 回答