2011-03-08 5 views
0

J'ai une activité Prolonger ListActivity Je veux ajouter un LinearLayout ou RelativeLayout au-dessus de la liste comme un titre d'action Mais quand j'ajoute la liste XML pas afficher, Pourquoi?barre de titre personnalisé avec ListView

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" android:layout_height="fill_parent"> 
<RelativeLayout 
    android:orientation="horizontal" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 
    <TextView android:text="1111" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/textView1"/> 
</RelativeLayout> 
    <ListView android:id="@id/android:list" android:layout_width="fill_parent" 
     android:layout_height="fill_parent" android:layout_weight="1" 
     android:drawSelectorOnTop="false" android:padding="4dip" /> 
    <TextView android:id="@id/android:empty" android:layout_width="fill_parent" 
     android:layout_height="fill_parent" android:text="No_data" /> 
</LinearLayout> 

Répondre

0

Jason,

Google a fourni un bon exemple de ce que vous appelez un "titre d'action" ici: http://code.google.com/p/iosched/

Le code source complet est fourni.

Bonne chance.

0

Vous avez étendu ListActivity. Vous devez étendre une activité normale et utiliser ListView au lieu de ListActivity.

Adresser le lien here

Voici le texte que vous avez besoin

ListActivity a une mise en page par défaut se compose d'une seule liste en mode plein écran au centre de l'écran. Toutefois, si vous le souhaitez, vous pouvez personnaliser la disposition de l'écran en définissant votre propre affichage avec setContentView() dans onCreate(). Pour ce faire, votre propre point de vue DOIT contenir un objet ListView avec l'id "@android: id/list" (ou liste si il est dans le code)

+1

Rien ne l'empêche d'utiliser ListActivity ici, la mise en page est incorrecte et ne laisse aucun espace pour ListView. – adamp

+0

merci de corriger adamp :) –

+0

Pas de problème. :) Ceci est un problème assez commun, et c'est pourquoi nous avons changé le nom de "fill_parent" en "match_parent" il y a quelques versions. "fill_parent" impliquait un comportement similaire à layout_weight pour beaucoup de gens où l'espace serait partagé avec des éléments postérieurs, mais cela signifie vraiment "prendre le reste de l'espace disponible dans cette direction". Une fois que vous avez un objet match_parent dans un LinearLayout allant dans la même direction, tous les enfants suivants seront mesurés avec une largeur ou une hauteur de 0 puisqu'il n'y a plus d'espace pour leur donner. – adamp

1

Votre RelativeLayout au-dessus de la liste a une hauteur de fill_parent et ne laisse aucun espace pour la liste ci-dessous. Essayez de définir une valeur différente pour layout_height sur RelativeLayout, soit une hauteur constante dans dips ou wrap_content.

Vous voulez également orientation = "vertical" sur votre racine LinearLayout.

0

Je recevais le même problème, où rien ne se présentait. Le problème pour moi était qu'Android ne regonflait pas correctement les ressources. Ajout de la deuxième ligne, il fixe ici pour moi:

final boolean useCustomTitle=requestWindowFeature(Window.FEATURE_CUSTOM_TITLE); 
getWindow().getDecorView();//required to make title show up 
if(useCustomTitle) 
    getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE,R.layout.my_custom_title); 

La deuxième ligne retourne une vue, mais je ne pas besoin. Cependant, le code ne fonctionnera pas sans cela. Vous pouvez trouver le code source Android en ligne si vous avez besoin de trouver des solutions de contournement. Le private TextView mTitleView n'est toujours pas mis à jour, vous pouvez donc remplacer setTitle ou utiliser la réflexion.

Questions connexes