목록보기가 스크롤 될 때 검색보기를 숨기는 방법

포 아드 사이디 닉

목록보기의 내용을 검색하는 검색 기능이있는 활동을 구현하고 싶습니다. 검색 표시 줄은 목록보기 상단에 있어야하며 사용자가 목록보기를 아래로 스크롤하면 숨겨져 야합니다. 그리고 그가 무언가를 검색 할 때, 그것은 항상 목록보기의 맨 위에 있어야합니다 !!! 어떻게 구현할 수 있습니까? 친애하는!

데미안 페 틀라

ListView 위에 SearchView를 사용하여 XML 레이아웃을 만드는 방법을 알고 있다고 가정합니다. 수직 LinearLayout 안에 배치 할 수 있습니다. 까다로운 부분은 SearchView를 조작하는 방법입니다.

다음과 같이 ListView에 리스너를 등록 할 수 있습니다.

    listView.setOnScrollListener(new AbsListView.OnScrollListener() {

        @Override
        public void onScrollStateChanged(AbsListView view, int scrollState) {
            switch (scrollState) {
                case SCROLL_STATE_IDLE:
                    //scroll was stopped, let's show search bar again
                    break;
                case SCROLL_STATE_TOUCH_SCROLL:
                    //user is scrolling, let's hide search bar
                    break;
            }
        }

        @Override
        public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
            if (firstVisibleItem > 0) {
                //user scrolled down, first element is hidden
            }

        }
    });

보시다시피 상태 변경에 대한 알림을 받게되며 터치 이벤트 중에 검색보기를 숨기려면 사용할 수 있습니다. 또는 보이는 요소가 변경되는 것을들을 수 있습니다. 이 간단한 if 문 검사 firstVisibleItem > 0는 사용자가 아래로 스크롤했을 때 알려줍니다. 사라지는 목록 항목을 추적하고 항목이 표시되거나 숨겨 질 때마다 반응 할 수도 있습니다.


스크롤 변경을 수신하는 또 다른 방법은 ListView를 확장하고 onScrollChanged()메서드를 재정의 하는 것입니다.

class MyListView extends ListView {

    public MyListView(Context context) {
        super(context);
    }

    public MyListView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public MyListView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
    }

    @Override
    protected void onScrollChanged(int l, int t, int oldl, int oldt) {
        super.onScrollChanged(l, t, oldl, oldt);
        for (Callbacks c : mCallbacks) {
            c.onScrollChanged(l - oldl, t - oldt);
        }
    }

    @Override
    public int computeVerticalScrollRange() {
        return super.computeVerticalScrollRange();
    }

    public void addCallbacks(Callbacks listener) {
        if (!mCallbacks.contains(listener)) {
            mCallbacks.add(listener);
        }
    }

    public static interface Callbacks {
        public void onScrollChanged(int deltaX, int deltaY);
    }
}

Google 사람들은 IOSched에서 이와 비슷한 일을했습니다 .

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

목록 상자를 스크롤 할 때 소프트 키보드를 숨기는 방법은 무엇입니까?

분류에서Dev

JQuery : 소스가 변경 될 때까지 이미지를 숨기는 방법

분류에서Dev

보기가로드 될 때 검색 컨트롤러에서 포커스 제거

분류에서Dev

다른 하위보기의 위치가 변경 될 때 하위보기의 크기를 조정하는 방법

분류에서Dev

보기가 스크롤 될 때 Android ListView가 확인란 상태를 잃음

분류에서Dev

Flutter-목록보기를 스크롤 할 때 둥근 테두리를 얻는 방법?

분류에서Dev

채팅을 열 때 채팅 목록보기를 아래로 스크롤하는 방법 Flutter

분류에서Dev

두 목록보기를 함께 스크롤하는 방법

분류에서Dev

활성화 될 때까지 form.errors를 숨기는 방법

분류에서Dev

목록보기 아래에 가로 스크롤보기를 추가하는 방법

분류에서Dev

스크롤을 오버플로로 사용할 때 스크롤 막대의 모서리를 숨기는 방법

분류에서Dev

검도 목록보기 스크롤시 스크롤 이벤트를 얻는 방법

분류에서Dev

위로 스크롤 할 때 사라지고 (목록보기에서 아래로 이동) 아래로 스크롤 할 때 나타나는보기를 추가하는 방법은 무엇입니까?

분류에서Dev

Parse.com의 반환 목록이 목록보기에로드 될 때까지 기다리는 방법

분류에서Dev

아래로 스크롤 할 때 로고 크기를 변경하고 일부 Div를 숨기는 방법

분류에서Dev

스크롤보기가 맨 위에있는 경우보기를 숨기는 방법은 무엇입니까?

분류에서Dev

목록보기의 봇으로 스크롤하는 방법

분류에서Dev

Android에서 목록보기가로드 될 때 목록의 첫 번째 항목에 액세스

분류에서Dev

목록을 스크롤 할 때보기가 예기치 않게 변경됨

분류에서Dev

페이지로드 중 페이지 스크롤보기를 숨기는 방법

분류에서Dev

위로 스크롤 할 때 재활용보기에서 마지막 항목을 지나가는 방법

분류에서Dev

Nautilus가 종료 될 때까지 스크립트를 기다리는 방법

분류에서Dev

jQuery로 실시간 검색 할 때 div를 숨기는 방법

분류에서Dev

아래로 스크롤 할 때 숨기기를 만들고 스크롤 업 메뉴 whitout jquery 또는 기타 종속성에 표시하는 방법

분류에서Dev

Android에서 스크롤 할 때 목록보기 edittext 데이터가 손실 됨

분류에서Dev

아래로 스크롤 할 때 헤더를 숨기는 방법, 링크드 인 메뉴처럼 위로 스크롤 할 때 표시

분류에서Dev

가로 스크롤 막대를 숨기는 방법

분류에서Dev

아래쪽 가장자리가보기로 스크롤 될 때 요소를 고정합니다.

분류에서Dev

목록보기를 계속해서 Marquee처럼 스크롤하는 방법

Related 관련 기사

  1. 1

    목록 상자를 스크롤 할 때 소프트 키보드를 숨기는 방법은 무엇입니까?

  2. 2

    JQuery : 소스가 변경 될 때까지 이미지를 숨기는 방법

  3. 3

    보기가로드 될 때 검색 컨트롤러에서 포커스 제거

  4. 4

    다른 하위보기의 위치가 변경 될 때 하위보기의 크기를 조정하는 방법

  5. 5

    보기가 스크롤 될 때 Android ListView가 확인란 상태를 잃음

  6. 6

    Flutter-목록보기를 스크롤 할 때 둥근 테두리를 얻는 방법?

  7. 7

    채팅을 열 때 채팅 목록보기를 아래로 스크롤하는 방법 Flutter

  8. 8

    두 목록보기를 함께 스크롤하는 방법

  9. 9

    활성화 될 때까지 form.errors를 숨기는 방법

  10. 10

    목록보기 아래에 가로 스크롤보기를 추가하는 방법

  11. 11

    스크롤을 오버플로로 사용할 때 스크롤 막대의 모서리를 숨기는 방법

  12. 12

    검도 목록보기 스크롤시 스크롤 이벤트를 얻는 방법

  13. 13

    위로 스크롤 할 때 사라지고 (목록보기에서 아래로 이동) 아래로 스크롤 할 때 나타나는보기를 추가하는 방법은 무엇입니까?

  14. 14

    Parse.com의 반환 목록이 목록보기에로드 될 때까지 기다리는 방법

  15. 15

    아래로 스크롤 할 때 로고 크기를 변경하고 일부 Div를 숨기는 방법

  16. 16

    스크롤보기가 맨 위에있는 경우보기를 숨기는 방법은 무엇입니까?

  17. 17

    목록보기의 봇으로 스크롤하는 방법

  18. 18

    Android에서 목록보기가로드 될 때 목록의 첫 번째 항목에 액세스

  19. 19

    목록을 스크롤 할 때보기가 예기치 않게 변경됨

  20. 20

    페이지로드 중 페이지 스크롤보기를 숨기는 방법

  21. 21

    위로 스크롤 할 때 재활용보기에서 마지막 항목을 지나가는 방법

  22. 22

    Nautilus가 종료 될 때까지 스크립트를 기다리는 방법

  23. 23

    jQuery로 실시간 검색 할 때 div를 숨기는 방법

  24. 24

    아래로 스크롤 할 때 숨기기를 만들고 스크롤 업 메뉴 whitout jquery 또는 기타 종속성에 표시하는 방법

  25. 25

    Android에서 스크롤 할 때 목록보기 edittext 데이터가 손실 됨

  26. 26

    아래로 스크롤 할 때 헤더를 숨기는 방법, 링크드 인 메뉴처럼 위로 스크롤 할 때 표시

  27. 27

    가로 스크롤 막대를 숨기는 방법

  28. 28

    아래쪽 가장자리가보기로 스크롤 될 때 요소를 고정합니다.

  29. 29

    목록보기를 계속해서 Marquee처럼 스크롤하는 방법

뜨겁다태그

보관