2013-08-12 21 views
5

Ich versuche, das SlidingPaneLayout zu verwenden. Die linke Ansicht ist ein ListFragment und die rechte Ansicht ist eine Detailansicht. Das Layout wird korrekt angezeigt und ich kann es verschieben. Wenn sich die Detailansicht jedoch vor der Liste befindet und ich darauf klicke, erhält die Liste im Hintergrund den Klick.Klicken Sie auf Events auf SlidingPaneLayout

Mein Layout sieht wie folgt aus:

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v4.widget.SlidingPaneLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/sliding_pane_layout" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 

    <fragment android:name="net.name.multiremote.RemoteListFragement" 
       android:id="@+id/fragment_remote_list" 
       android:layout_width="580dp" 
       android:layout_height="match_parent" 
       android:layout_gravity="left" /> 

    <fragment 
     android:id="@+id/fragment_remote" 
     android:name="net.name.multiremote.RemoteFragment" 
     android:layout_width="850dp" 
     android:layout_height="match_parent" 
     android:layout_weight="1" /> 

</android.support.v4.widget.SlidingPaneLayout> 

Ich benutze diesen Code für das Click-Hörer in der ListFragment Einrichtung

@Override 
public void onListItemClick(ListView list, View view, int position, long id) { 
    iItemClickListener.onListFragmentItemClick(view, position); 
} 

Wie kann ich dieses Problem lösen?

Antwort

8

Fügen Sie einfach android:clickable="true" zum zweiten Fragment oder FrameLayout im SlidingPaneLayout.

+0

Nur ein bisschen mehr Informationen hinzuzufügen, die Android-Version: anklickbare = „true“ muss das zweite Fragment Layout hinzugefügt werden, nicht (wie ich dachte zunächst) an den Knoten des zweiten Fragments in das Hauptlayout – fedepaol

0

ich das gleiche Problem haben, ich denke, es ist eine Kombination aus „v4“ -Version von Fragment und ListFragment und der SlidingPanelLayout ... Wenn Sie den Import von „v4“ ändern normal „android.app.ListFragment zu importieren; " und "importieren android.app.Fragment;" funktioniert alles.

Sorry für mein Englisch;)

2

Locutus hatte Recht. Was auch immer das Fragment auf, fügen Sie die Eigenschaft

android:clickable="true" 

so wird es nicht das Click-Ereignis an das Fragment unten passieren.

Danke an alle für die Rettung meiner Zeit. Hier ist mein Code. Ich habe ein überschriebenes Layout verwendet, aber das funktioniert auch beim regulären Slide-Panel-Layout. Blick auf das zweite Fragment, ich habe anklickbare wahre Eigenschaft hinzugefügt.

<com.ironone.streaming.application.MySlidingPaneLayout 
     android:id="@+id/pane" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" > 

     <FrameLayout 
      android:id="@+id/pane1" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" /> 

     <FrameLayout 
      android:id="@+id/pane2" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:clickable="true" /> 
    </com.ironone.streaming.application.MySlidingPaneLayout> 
Verwandte Themen