Android滑动菜单列表视图,滚动列表前不滑动项目

时间:2016-02-12 06:54:18

标签: android listview android-arrayadapter

我正在使用Bayoz Swipe菜单库在我的应用中添加滑动菜单。 最初在渲染列表滑动菜单后如果用户滚动列表未打开,然后滑动,则打开滑动菜单。 以下是我的代码 -

<com.baoyz.swipemenulistview.SwipeMenuListView
    android:id="@+id/listView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:scrollbars="vertical"/>

下面是onCreate Code -

    adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,items);
    listView.setAdapter(adapter);
    initSwipeMenu();

和初始滑动菜单的代码 -

private void initSwipeMenu(){
    SwipeMenuCreator creator = new SwipeMenuCreator() {

        @Override
        public void create(SwipeMenu menu) {
            //create an action that will be showed on swiping an item in the list
            SwipeMenuItem item1 = new SwipeMenuItem(
                    getApplicationContext());
            item1.setBackground(new ColorDrawable(Color.DKGRAY));
            // set width of an option (px)
            item1.setWidth(200);
            item1.setTitle("Action 1");
            item1.setTitleSize(18);
            item1.setTitleColor(Color.WHITE);
            menu.addMenuItem(item1);

            SwipeMenuItem item2 = new SwipeMenuItem(
                    getApplicationContext());
            // set item background
            item2.setBackground(new ColorDrawable(Color.RED));
            item2.setWidth(200);
            item2.setTitle("Action 2");
            item2.setTitleSize(18);
            item2.setTitleColor(Color.WHITE);
            menu.addMenuItem(item2);
        }
    };
    //set MenuCreator
    listView.setMenuCreator(creator);
    // set SwipeListener
    listView.setOnSwipeListener(new SwipeMenuListView.OnSwipeListener() {

        @Override
        public void onSwipeStart(int position) {
            // swipe start
        }

        @Override
        public void onSwipeEnd(int position) {
            // swipe end
        }
    });

    listView.setOnMenuItemClickListener(new SwipeMenuListView.OnMenuItemClickListener() {

        @Override
        public boolean onMenuItemClick(int position, SwipeMenu menu, int index) {
            String value = adapter.getItem(position);
            switch (index) {
                case 0:
                    Toast.makeText(getApplicationContext(), "Action 1 for "+ value , Toast.LENGTH_SHORT).show();
                    break;
                case 1:
                    Toast.makeText(getApplicationContext(), "Action 2 for "+ value , Toast.LENGTH_SHORT).show();
                    break;
            }
            return false;
        }});
    adapter.notifyDataSetChanged();
}

代码错误,请提供反馈。

TIA

1 个答案:

答案 0 :(得分:0)

这似乎为时已晚,但我找到了解决这类问题的方法。在我的情况下,SwipeMenuListView没有关闭项目,我必须滚动或触摸才能进行滑动。所以我打电话给

  

listView.smoothCloseMenu()

在刷卡之后或在SwipeMenuListView中设置适配器之前

解决了问题。 希望这能帮助您或下一位观众解决这个问题。