android-sliding-layer-lib icon indicating copy to clipboard operation
android-sliding-layer-lib copied to clipboard

List view

Open MinaMohsen opened this issue 10 years ago • 4 comments

i want the sliding layer to be a list view , but swiping on it is not working ??

MinaMohsen avatar Mar 03 '15 13:03 MinaMohsen

Hi! Does the layer stick horizontally or vertically? If it scrolls vertically i does not make too much sense from a UX perspective to have scrolling content. Also the touch events will collide with each other: the deepest child always consume touch events, otherwise the list would never scroll. If the layer is bound to the right or left side and listview scrolls vertically, you should be able to swipe horizontally.

What's your specific case? The more you share the better :)

JlUgia avatar Mar 03 '15 15:03 JlUgia

hii , thanks for the reply , the layer is bound to the right and listview scrolls vertically, but i should not be able to swipe to the right side , because when i try to swipe on list on item to the right , the layer close

MinaMohsen avatar Mar 03 '15 17:03 MinaMohsen

I see that. So your listView allows swiping items away horizontally. That could be a confusing experience for users. For now the library consumes the event if it can handle it, or pass it to the next listener otherwise. That was done intentionally. What you can do though both to provide a more usable experience and avoid the layer consuming the event is to allow swiping elements to the opposite direction of the layer. So in this case, allowing swiping elements in the list to the left when the layer is fully open.

Let me know if that works for you, otherwise we can get it fixed.

JlUgia avatar Mar 05 '15 13:03 JlUgia

@JlUgia, is there a way to override the x distance necessary to close the layer? So when flinging a listview, you are not closing the layer?

Edit: This works for most of the time. But that doesn't change the fact that you can swipe a layer closed with what looks like a very small amount of x movement

        listView.setOnScrollListener(new AbsListView.OnScrollListener() {
            @Override
            public void onScrollStateChanged(AbsListView view, int scrollState) {
                slidingLayer.requestDisallowInterceptTouchEvent(true);
            }

            @Override
            public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {

            }
        });

elmateo487 avatar Mar 18 '16 17:03 elmateo487