{"id":353,"date":"2020-04-10T10:06:28","date_gmt":"2020-04-10T02:06:28","guid":{"rendered":"https:\/\/badgameshow.com\/fly\/?p=353"},"modified":"2020-05-19T13:26:40","modified_gmt":"2020-05-19T05:26:40","slug":"github-%e5%a5%bd%e7%94%a8%e5%88%86%e4%ba%abandroid-cardswipelayout","status":"publish","type":"post","link":"https:\/\/badgameshow.com\/fly\/github-%e5%a5%bd%e7%94%a8%e5%88%86%e4%ba%abandroid-cardswipelayout\/","title":{"rendered":"Github \u597d\u7528\u5206\u4eabAndroid CardSwipeLayout"},"content":{"rendered":"<h3>1.\u5148\u5c0e\u5165\u51fd\u793a\u5eab(build.gradle: Module)<\/h3>\n<pre><code class=\"language-Gradle line-numbers\">dependencies {\n     implementation 'me.yuqirong:cardswipelayout:1.0.0'\n}\n<\/code><\/pre>\n<h3>2.\u7a0b\u5f0f\u78bc\u7bc4\u4f8b<\/h3>\n<h4>a.\u5275\u5efa\u8981\u5c55\u793a\u7684View<\/h4>\n<p>image_item.xml<\/p>\n<pre><code class=\"language-XML line-numbers\">&lt;androidx.constraintlayout.widget.ConstraintLayout xmlns:android=\"http:\/\/schemas.android.com\/apk\/res\/android\"\nxmlns:app=\"http:\/\/schemas.android.com\/apk\/res-auto\"\nxmlns:tools=\"http:\/\/schemas.android.com\/tools\"\nandroid:layout_width=\"match_parent\"\nandroid:layout_height=\"wrap_content\"&gt;\n\n &lt;ImageView\n     android:id=\"@+id\/imageView2\"\n     android:layout_width=\"wrap_content\"\n     android:layout_height=\"wrap_content\"\n     app:layout_constraintBottom_toBottomOf=\"parent\"\n     app:layout_constraintEnd_toEndOf=\"parent\"\n     app:layout_constraintStart_toStartOf=\"parent\"\n     app:layout_constraintTop_toTopOf=\"parent\"\n     tools:srcCompat=\"@tools:sample\/avatars\" \/&gt;\n\n&lt;\/androidx.constraintlayout.widget.ConstraintLayout&gt;\n<\/code><\/pre>\n<h4>b.\u5275\u5efaAdapter<\/h4>\n<p>ImageAdapter.class<\/p>\n<pre><code class=\"language-Java line-numbers\">class ImageAdapter extends RecyclerView.Adapter&lt;ImageAdapter.ImageHolder&gt; {\n\n    @NonNull\n    @Override\n    public ImageHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {\n        View view = LayoutInflater.from(MainActivity.this).inflate(R.layout.image_item, parent, false);\n        return new ImageHolder(view);\n    }\n\n    @Override\n    public void onBindViewHolder(@NonNull ImageHolder holder, int position) {\n        holder.imageView.setImageDrawable(getDrawable(list.get(position)));\n    }\n\n    @Override\n    public int getItemCount() {\n        return list.size();\n    }\n\n    class ImageHolder extends RecyclerView.ViewHolder {\n\n        ImageView imageView;\n        ImageHolder(@NonNull View itemView) {\n            super(itemView);\n            imageView = itemView.findViewById(R.id.imageView2);\n        }\n    }\n}\n<\/code><\/pre>\n<h4>c.\u521d\u59cb\u5316RecyclerView<\/h4>\n<pre><code class=\"language-Java line-numbers\">List&lt;Integer&gt; list = new ArrayList&lt;&gt;();\nlist.add(R.drawable.i_23);\nlist.add(R.drawable.i_24);\nlist.add(R.drawable.i_25);\nRecyclerView recyclerView = findViewById(R.id.recycler);\nrecyclerView.setAdapter(new ImageAdapter());\n\nCardItemTouchHelperCallback cardCallback = new CardItemTouchHelperCallback(recyclerView.getAdapter(), list);\nItemTouchHelper touchHelper = new ItemTouchHelper(cardCallback);\nCardLayoutManager cardLayoutManager = new CardLayoutManager(recyclerView, touchHelper);\nrecyclerView.setLayoutManager(cardLayoutManager);\ntouchHelper.attachToRecyclerView(recyclerView);\n\ncardCallback.setOnSwipedListener(new OnSwipeListener() {\n        @Override\n        public void onSwiping(RecyclerView.ViewHolder viewHolder, float v, int i) {\n\n        }\n\n        @Override\n        public void onSwiped(RecyclerView.ViewHolder viewHolder, Object o, int i) {\n\n        }\n\n        @Override\n        public void onSwipedClear() {\n\n        }\n    });\n<\/code><\/pre>\n<h4>d.\u6548\u679c\u5c55\u793a<\/h4>\n<p>\u5de6\u53f3\u6ed1\u52d5\u90fd\u53ef\u4ee5\u4e0b\u4e00\u5f35<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/badgameshow.com\/fly\/wp-content\/uploads\/2020\/04\/17.gif\" alt=\"\" \/><\/p>\n\n<div style=\"font-size: 0px; height: 0px; line-height: 0px; margin: 0; padding: 0; clear: both;\"><\/div>","protected":false},"excerpt":{"rendered":"<p>1.\u5148\u5c0e\u5165\u51fd\u793a\u5eab(build.gradle: Module) dependencies { implement &hellip; <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"pgc_sgb_lightbox_settings":"","footnotes":""},"categories":[57],"tags":[58,56,14],"class_list":["post-353","post","type-post","status-publish","format-standard","hentry","category-github","tag-cardswipelayout","tag-github","tag-java"],"_links":{"self":[{"href":"https:\/\/badgameshow.com\/fly\/wp-json\/wp\/v2\/posts\/353","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/badgameshow.com\/fly\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/badgameshow.com\/fly\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/badgameshow.com\/fly\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/badgameshow.com\/fly\/wp-json\/wp\/v2\/comments?post=353"}],"version-history":[{"count":5,"href":"https:\/\/badgameshow.com\/fly\/wp-json\/wp\/v2\/posts\/353\/revisions"}],"predecessor-version":[{"id":450,"href":"https:\/\/badgameshow.com\/fly\/wp-json\/wp\/v2\/posts\/353\/revisions\/450"}],"wp:attachment":[{"href":"https:\/\/badgameshow.com\/fly\/wp-json\/wp\/v2\/media?parent=353"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/badgameshow.com\/fly\/wp-json\/wp\/v2\/categories?post=353"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/badgameshow.com\/fly\/wp-json\/wp\/v2\/tags?post=353"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}