2016-06-27 2 views
0

J'ai un listview dans une activité et je veux ouvrir un fragment quand on clique sur un élément. Pour cela, j'ai utilisé FrameLayout avec ListView, mais cela provoque un chevauchement de la classe de fragment sur l'activité. Est-il possible de supprimer cette solution?fragmenttransaction sur listview

Activity's Listview Item Click code: 
 

 
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
 
      @Override 
 
      public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { 
 

 
      
 

 
       DetailsView details = new DetailsView(); 
 
       getSupportFragmentManager().beginTransaction().addToBackStack(null).add(R.id.frame, details).commit(); 
 
      } 
 
     });
activity layout: 
 

 
<?xml version="1.0" encoding="utf-8"?> 
 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
 
    android:orientation="vertical" 
 
    android:layout_width="match_parent" 
 
    android:layout_height="match_parent"> 
 

 
    <com.baoyz.swipemenulistview.SwipeMenuListView 
 
    android:id="@+id/list" 
 
    android:layout_width="match_parent" 
 
    android:layout_height="match_parent" /> 
 

 

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

 

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

 
    </LinearLayout> 
 

 
</RelativeLayout>

Répondre

0

Essayez d'utiliser FragmentManager.Replace() au lieu de .add()

+0

Malheureusement, je l'ai vérifié que les deux ont le même résultat. @Alex. – CodeAssasins