2012-08-27 3 views
3

Je modifie mon application existante pour utiliser ListFragment au lieu de ListView.ListFragment manquant divider

Je ne suis pas en mesure de définir un diviseur en utilisant JAVA. Aucune exception n'est levée. ListFragment est affiché sans diviseurs.

public void onActivityCreated(Bundle savedInstanceState) { 
     super.onActivityCreated(savedInstanceState); 

     setRetainInstance(true); 
     setHasOptionsMenu(true); 

     lv = getListView(); 
     lv.setTextFilterEnabled(true); 
     lv.setCacheColorHint(Color.TRANSPARENT); 
     lv.setFastScrollEnabled(true); 
     lv.setDividerHeight(1); 

     lv.setDivider(getActivity().getResources().getDrawable(android.R.color.black)); 

     lv.setBackgroundDrawable(getResources().getDrawable(R.drawable.merge)); //white background 
     lv.setScrollingCacheEnabled(false); 
     lv.setSmoothScrollbarEnabled(false);  

     setListAdapter(new IconicAdapter()); 

     } 

Qu'est-ce que je fais mal? Vous aidez est très apprécié.

Répondre

7

Vous devez utiliser lv.setDividerHeight (1) après lv.setDivider (getActivity() getResources() getDrawable (android.R.color.black));

Alors les Renverser:

lv.setDivider(getActivity().getResources().getDrawable(android.R.color.black)); 
lv.setDividerHeight(1); 
+0

Merci beaucoup ... travaillé pour moi = D – Abid

2

Votre diviseur ne peut pas être simplement une couleur car il a également besoin d'une largeur. Vous récupérez un drawable mais en réalité saisissez une couleur. Vous devez créer un drawable de ligne et de le mettre dans votre dossier drawable qui est défini comme suit:..

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item> 
    <shape android:shape="line"> 
     <stroke android:color="#000000" android:width="1dp" /> 
    </shape> 
    </item> 
</selector>