首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在列表视图中滑动一个新的视图,就像android中的删除按钮一样?

如何在列表视图中滑动一个新的视图,就像android中的删除按钮一样?
EN

Stack Overflow用户
提问于 2013-12-18 17:42:18
回答 3查看 178关注 0票数 1

我已经有一个列表视图与simpleCursorAdapter,并显示缩略图所有的视频从SD卡..

现在我想扩展我的列表视图更多,我想添加卷帘列表视图的代码是以编程方式不使用任何已给出的SwipeLibrary,我想创建自己的代码集使用卷帘

我想创建像这些http://www.youtube.com/watch?v=E0352OH488M这样的东西

我想创建自己的代码集,而不使用其他程序员的库。

这是我的代码

代码语言:javascript
复制
public class FRAGThisWeek extends ListFragment {

    private static final String KEY_VIDEO_PATH = "AAA-1";
    private static final String KEY_VIDEO_TITLE = "AAA-2";
    private static final String KEY_VIDEO_ARTIST = "AAA-3";
    private static final String KEY_VIDEO_DURATION = "AAA-4";
    private static final String KEY_VIDEO_ID = "AAA-5";

    /* SOURCE URI FROM SDCARD */

    private static final Uri sourceUri = MediaStore.Video.Media.EXTERNAL_CONTENT_URI;
    private static final String[] projection = { MediaStore.Video.Media._ID,
            MediaStore.Video.Media.DATA, MediaStore.Video.Media.TITLE,
            MediaStore.Video.Media.DISPLAY_NAME, MediaStore.Video.Media.ARTIST,
            MediaStore.Video.Media.DURATION };
    private static final String orderBy = MediaStore.Video.Media.DATE_ADDED;

    /* THE DESIRED COLUMNS TO BE BOUND */
    private static final String[] from = { MediaStore.Video.Media.TITLE,
            MediaStore.Video.Media.ARTIST, MediaStore.Video.Media.DURATION };

    /* THE XML DEFINED VIEWS WHICH THE DATA WILL BE BOUND TO */
    private static final int[] to = { R.id.list_Title, R.id.list_Artist,
            R.id.list_Duration };

    private static Cursor videoCursor;
    private static int videoPathColumnIndex;
    private static int videoTitleColumnIndex;
    private static int videoArtistColumnIndex;
    private static int videoDurationColumnIndex;
    private static int videoIdColumnIndex;

    private static String videoPath;
    private static String videoTitle;
    private static String videoArtist;
    private static int videoDuration;
    private static int videoId;

    /* TO LUNCH PLAY.CLASS AND PUT MEDIA INFO INTO */
    private static Intent vIntent;

    /* MY CUSTOM ADAPTER */
    private static MyCustomSimpleCursorAdapter adapter;

    /* MY LISTVIEW */
    ListView lv;

    /* CUSTOM TYPE INFLATION IF NEED TO ADD MORE VIEW IN LISTVIEW XML LAYOUT */
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        return inflater.inflate(R.layout.frag_this_week, container, false);
    }

    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);

        // CREATE CURSOR THAT WILL HOLD ALL VALUE
        videoCursor = getActivity().getContentResolver().query(sourceUri,
                projection, null, null, orderBy);

        // CREATE THE ADAPTER USING THE CURSOR POINTING TO THE
        // DESIRED DATA AS WELL AS THE LAYOUT INFORMATION
        adapter = new MyCustomSimpleCursorAdapter(getActivity(),
                R.layout.list_row_items, videoCursor, from, to);

        setListAdapter(adapter);

        // GET THE INSTANCE OF LISTVIEW for the swipeview purpose
        lv = getListView();
    }

    @Override
    /* ListView Listener */
    public void onListItemClick(ListView l, View v, int position, long id) {
        Log.d("clicked", "clicked");
    }

}
EN

回答 3

Stack Overflow用户

发布于 2013-12-18 18:45:49

你为什么不看看这些库是如何制作的呢?

你基本上需要:

  • a onTouchListener on each row以检测滑动手势
  • an objectanimator以移动视图。
  • 自定义适配器以显示视图。
票数 1
EN

Stack Overflow用户

发布于 2013-12-18 18:46:21

这是我通过添加HorizontalScrollView实现的。整个列表视图项布局都在HorizontalScrollView中。在那之后,我为这个HorizontalScrollView实现了自己的OnTouchListener。在没有任何库的情况下运行良好。

票数 0
EN

Stack Overflow用户

发布于 2013-12-18 19:21:18

最好尝试一下swipe来删除样式。它适合android系统。https://github.com/timroes/SwipeToDismissUndoList

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20654500

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档