SwipeListView setSwipeMode none禁用onclick以及滑动

时间:2014-12-22 10:37:48

标签: android

您使用的SwipeListView在其后视图上有两个按钮我正在尝试以编程方式设置SwipeListView,以便通过将滑动模式设置为none来不滑动。我遇到的问题是前视图现在没有注册点击。有谁知道为什么???

到目前为止,我试过的是什么

final SwipeListView messagesList = (SwipeListView)v.findViewById(R.id.list);
if(r_deleteMessages == false || r_markMessages == false) messagesList.setSwipeMode(SwipeListView.SWIPE_MODE_NONE);

if(messageData != null){
    ViewGroup.LayoutParams params = messagesList.getLayoutParams();
    int size;
    size = messageData.size();
    params.height = (SM_Global.pxFromDp(context, 80) * size) +3;

    messagesList.setLayoutParams(params);
    messagesList.requestLayout();

    messagesList.setFocusable(false);
    final MessagesAdapter messagesAdapter = new MessagesAdapter(context, R.layout.layout_message_item, messageData,messagesList,"profile");
    messagesList.setAdapter(messagesAdapter);



        Log.v("Auth","CAN READ MESSAGES | " + r_readMessages);
        messagesList.setSwipeListViewListener(new BaseSwipeListViewListener() {


            @Override
            public void onClickFrontView(int position) {
                 super.onClickFrontView(position);
                Log.v("Auth","CLICKED ");


            }
        }); 

2 个答案:

答案 0 :(得分:0)

您可以将监听器添加到列表视图并覆盖onChangeSwipeMode

if(r_deleteMessages == false || r_markMessages == false){

    mList.setSwipeListViewListener(new BaseSwipeListViewListener() {
        @Override
        public int onChangeSwipeMode(int position) {
            return SwipeListView.SWIPE_MODE_NONE;
        }
    });
}

这样你仍然可以获得触摸事件。

您可能还需要执行mList.setSwipeOpenOnLongPress(false);以取消长按

请参阅:https://github.com/47deg/android-swipelistview/issues/9

答案 1 :(得分:0)

我尝试了建议的方法,但对我没有用。所以我在List Adapter&处理那里的点击事件。现在工作正常。