2013-06-16 2 views
5

SlidingPaneLayout에서 보조보기로 ListView을 사용하고 있습니다. 기본보기는지도 조각입니다. ListView은 메뉴 역할을합니다. 문제는 onItemClickedListener이 ListView에서 호출되지 않는다는 것입니다. 심지어 목록 행은 언론에서 결코 강조 표시되지 않습니다. 그것은 ListView 포커스를 얻을 수없는 것 같습니다.Android, SlidingPaneLayout 및 listView

EDIT : 실제로 slidingPaneLayout.findFocus()은 android.widget.ListView를 보여줍니다. 목록 항목을 클릭해도 여전히 운이 없다. 여기

내 XML입니다

<com.ziz.luke.custom_components.MySlidingPaneLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/slidingpanelayout" 
android:layout_width="match_parent" 
android:layout_height="match_parent" > 

<RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 

    <ListView 
     android:id="@+id/contactsList" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:background="#00000000" > 
    </ListView> 

    <TextView 
     android:id="@+id/android:empty" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_centerInParent="true" 
     android:gravity="center_horizontal|center_vertical" 
     android:text="@string/noContacts" /> 
</RelativeLayout> 

<fragment 
    android:id="@+id/map" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    class="com.google.android.gms.maps.SupportMapFragment" /> 
</com.ziz.luke.custom_components.MySlidingPaneLayout> 

나는이 문제를 어떻게 해결할 수 있습니까 ??

+0

을 귀하의 청취자가 귀하의 목록에 초점을 맞춘다면 - 그리고 -보기가 옳은 것처럼 보일 것입니다. 그러면 귀하의 레이아웃 xml에 문제가 없을 것입니다. 또한'empty '를 어떻게 보이거나 숨길 수 있습니까? – edthethird

+0

그게 내가 한거야. 같은 문제. 그리고 SlidingPaneLayout 자체와 관련이 있다고 생각합니다. –

+0

자바 코드도 게시 할 수 있습니까? – edthethird

답변

6

답변을 찾았습니다.

  • 는 버튼을 useing slidingPaneLayout를 엽니 다 : 나는 다음을 수행하려고했던

    onInterceptTouchEvent(MotionEvent arg0) 
    

    을 무시되었던 나는 SlidingPaneLayout의 서브 클래스를 사용하고 있었다.

  • 버튼을 사용하여 slidingPaneLayout을 닫습니다.
  • slidePaneLayout을 사용하여 스 와이프를 닫습니다.
  • 사용자가 스 와이프를 사용하여 slidingPaneLayout을 열지 못하도록합니다.

그래서 나는 over-ridden 메서드에서 반환 될 shouldSwipe라는 내 하위 클래스 안에 부울을 만들었습니다.

는 문제를 일으킨 구현했다 (사실 shouldSwipe =)이 있기 때문에 터치 이벤트가 이미 소비하고 전파되는 것을 방지 시스템을 이야기 할 때마다

@Override 
    public boolean onInterceptTouchEvent(MotionEvent arg0) { 

     return shouldSwipe; 
    } 

가 문제를 일으켰습니다.

@Override 
    public boolean onInterceptTouchEvent(MotionEvent arg0) { 
     // TODO Auto-generated method stub 
     return shouldSwipe ?super.onInterceptTouchEvent(arg0):shouldSwipe; 
    } 

그거야 그 :

나는이 하나를 사용하는 것으로 해결했다.

+0

안녕하세요, 내 응용 프로그램에 slidingUpPanelLayout 사용하고 있습니다. 패널에서 스 와이프 할 수있는보기가 있습니다. 그러나 나는 그것을 수직으로 강타 할 수 없다. 이걸 좀 도와 주실 래요? –

3

방금 ​​SlidingPaneLayout을 사용하여 예제 프로젝트를 만들었습니다.

문제가있는 곳이 없기 때문에지도를 사용하지 않았으므로 TextView를 사용하여지도의 위치를 ​​참조합니다. ListFragment를 사용하여 클릭 리스너를 수신했습니다. 여기에서 프로젝트를 다운로드하십시오

https://dl.dropboxusercontent.com/u/33565803/StackOverFlowExamples/SlidingPaneLayoutExample.zip

당신은 어떤 구성 문제가있는 경우이 문제가 해결되는지 알려주세요)

(나는 내가 사용하고해서 ActionBarSherlock의를 사용하고, 그래서 원하는 경우 제거 할 수 있습니다.)