2013-02-04 2 views
0

나는 슬라이더 메뉴에서 셀렉터를 사용하지 않고 2 일 동안 사용하려고했습니다. 여기셀렉터가있는 안드로이드 슬라이딩 메뉴 lib 사용하기

는 내가하고 싶은 것입니다 :

나는 그것을에서 ListView에있는 메뉴를했습니다. 선택기가 하나의 특정 항목을 가리키고 목록보기가 스크롤 될 때 항목으로 이동하려고합니다.

기본적으로 선택기가 올바른 항목을 가리키고 있지만 스크롤 할 때 셀렉터가 내 휴대 전화 (Android 4.0.4)로 이동하지 않지만 에뮬레이터 (4.1.2)에서는 작동합니다. 내가 그렇게하도록 요청했을 때 메뉴가 왜 무효화되지 않는지 알고 싶습니까?

/*Setting the sliding menu */ 

     setBehindContentView(R.layout.menu); 
     setSlidingActionBarEnabled(true);  



     getSlidingMenu().setMode(SlidingMenu.LEFT); 
     getSlidingMenu().setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN); 

     getSlidingMenu().setFadeEnabled(true); 
     getSlidingMenu().setFadeDegree(0.35f); 
     getSlidingMenu().setShadowWidth(15); 
     getSlidingMenu().setShadowDrawable(R.drawable.shadow); 
     getSlidingMenu().setSelectorEnabled(true); 
     getSlidingMenu().setSelectorDrawable(R.drawable.selector); 

     DisplayMetrics metrics = new DisplayMetrics(); 
     getWindowManager().getDefaultDisplay().getMetrics(metrics); 

     getSlidingMenu().setBehindWidth((int) (metrics.widthPixels * 0.8)); 
     getSlidingMenu().setSelectedView(null); 

     /*Creating the content of the sliding menu*/ 

        /*Now we generate the menu below */ 
     maListViewPerso = (ListView) this.findViewById(R.id.listviewperso); 

     maListViewPerso = SlidingMenuListCreator.getListView(this, (String) this.getTitle(), maListViewPerso, isMissionSelected, isTourneeOpened); 

     getSlidingMenu().setOnOpenListener(new OnOpenListener() { 

      @Override 
      public void onOpen() { 

            int wantedPosition = 5; // Whatever position you're looking for 
       int firstPosition = maListViewPerso.getFirstVisiblePosition() - maListViewPerso.getHeaderViewsCount();     int wantedChild = wantedPosition - firstPosition; 
            if (wantedChild < 0 || wantedChild >= maListViewPerso.getChildCount()) { 
             } else { 
        selectedView = maListViewPerso.getChildAt(wantedChild); 
             } 

       getSlidingMenu().setSelectedView(selectedView); 
       getSlidingMenu().invalidate(); 



      } 
     }); 

     OnTouchListener mOnTouchListener = new OnTouchListener() { 

      @Override 
      public boolean onTouch(View v, MotionEvent event) { 


       maListViewPerso.onTouchEvent(event); 

       int wantedPosition = 5;     int firstPosition = maListViewPerso.getFirstVisiblePosition() - maListViewPerso.getHeaderViewsCount();     int wantedChild = wantedPosition - firstPosition; 
            if (wantedChild < 0 || wantedChild >= maListViewPerso.getChildCount()) { 

       } else { 
        selectedView = maListViewPerso.getChildAt(wantedChild);     } 

       getSlidingMenu().setSelectedView(selectedView); 
       getSlidingMenu().getmViewBehind().invalidate(); 

            return true; 
      } 
     }; 

     maListViewPerso.setOnTouchListener(mOnTouchListener); 
+0

슬라이딩 메뉴에 어떤 라이브러리를 사용하고 있습니까? – Gogu

+0

jfeinstein10/SlidingMenu를 사용하고 있습니다 : https://github.com/jfeinstein10/SlidingMenu – poulpi

답변

2

결국 솔루션을 찾지 못했습니다.

그러나이 : ​​

  1. 나는 사용자가 선호 있었는지 그 때문에 viewpager 탐색 모드로 전환 (그리고 예, 조각이 굉장, 발견)

  2. 구글이 마침내 탐색 패턴 "을 만들었습니다 공식 라이브러리 "와 서랍 레이아웃을 통해 추가하면됩니다. =)