实现47degree android-swipelistview用于滑动android ListViewItem

时间:2013-05-22 10:35:50

标签: android listview swipe

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

Simple swipe gesture to activity tutorial?

Show button in a list view on swiping one item from that list

有一点是每个人都在提供代码,没有人在解释发生了什么。

然后我问了问题Android list view Right / Left swipes like call logs,@ CommonsWare已经使用SwipeListView库回答了这个问题,SwipeListView库的流程顺畅,然后是接受的答案。接受的答案也正常,我目前只使用它。

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

enter image description here

我已经尝试了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建议的那样。我已经写了一封电子邮件给作者也写了一个使用它的教程。

5 个答案:

答案 0 :(得分:12)

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

像魅力一样工作。感谢47Degrees写了这么棒的代码。

<强>解决方案:

什么不起作用?!

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

什么有效?!

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

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

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

  • 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"
   />

您可以使用与example on SwipeListView github site中显示的相同的活动代码。

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

答案 1 :(得分:2)

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

即可

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

在这种特定情况下,只有将项目作为库项目而非JAR连接时,此项目才有效。

希望这有帮助。

此库也是Maven项目。你需要有Android设置maven才能建立它。或将其转换回常规项目。

答案 2 :(得分: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" />

答案 3 :(得分:0)

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

repositories {
    mavenCentral()
    flatDir {
        dirs 'libs'
    }
    maven { url 'http://clinker.47deg.com/nexus/content/groups/public' }
}

答案 4 :(得分:0)

我遇到了同样的问题。

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

要解决此问题,您需要在Properties&gt;中导入库。 Android&gt;图书馆&gt;加... GDroid的解决方案对我不起作用。

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

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

  

gen-external-apklibs&gt;   com.fortysevendeg.android_swipelistview_1.0-20130701.103547-12

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

  

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

这些.jars应该可以解决您的错误。