2011-12-09 1 views
0

je voudrais mettreExiste-t-il un moyen de spécifier android: layout_height dynamiquement pendant onCreate?

android: layout_height = "wrap_content"

à quelques pixels (int) lors de mon démarrage de l'application. Ceci est un textView et la raison derrière cela est que je veux la hauteur de la dynamique textView basée sur certaines entrées de ma part qui sera calculée lorsque la méthode onCreate est appelée.

Est-ce possible? Si oui, n'importe quel exemple serait génial.

oublié d'ajouter mon xml textView ressemble à ceci

<TextView 
       android:id="@+id/sometext" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:fadingEdge="vertical" 
       android:background="@drawable/dropshadow" 
       android:scrollbars="vertical" 
       android:text="Getting data on your slow n/w..." 
       android:textColor="#ffffff" 
       /> 

Répondre

6

modifier uniquement la mise en page params de la vue.

TextView v = (TextView) findViewById(R.id.sometext); 
LayoutParams lp = v.getLayoutParams(); 
lp.height = 50; 
v.setLayoutParams(lp); 

La vue aura une hauteur de 50 pixels dans cet exemple.

Notez qu'il est généralement déconseillé d'utiliser des dimensions en pixels pour les mises en page en raison des nombreuses spécifications de périphérique disponibles. Utilisez plutôt dp (pixels indépendants de la densité) à la place. Vous pouvez calculer les dimensions de pixel à partir des valeurs de dp de la manière suivante (50dp Px ici):

float dp = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 50, 
            getResources().getDisplayMetrics()); 
+0

Merci alextsc. Mais mon problème est même de le faire ce n'est pas reflété. Mon code est ceci. \t \t ViewGroup.LayoutParams lp = sometext.getLayoutParams(); \t \t lp.height = 10; \t \t sometext.setLayoutParams (lp); –

+0

Utilisez-vous 'findViewById()' pour obtenir une référence à la textview utilisée dans cet exemple? Ou créez-vous une nouvelle vue à partir du code * (qui pourrait ne pas être ajouté à la mise en page) *? Testez également si vous avez importé LayoutParams correct, il y en a plusieurs dans le framework. La bonne est 'ViewGroup.LayoutParams' ici. –

+0

Salut alextsc, ça a marché. ressemble à un fichier apk a été mis en cache. Même en supprimant plusieurs choses de xml, ça fonctionnait toujours bien: | donc supprimé le .apk et une fois créé à nouveau je peux voir le changement. Merci –

Questions connexes