2011-09-07 5 views
0

J'essaie de créer une autre vue sur mon GLSurfaceView, j'ai réussi à le faire avant mais pour une raison quelconque, rien n'est visible cette fois-ci. Je fais tout cela dans le code, mais ci-dessous est comment il devrait fonctionner avec XML:Pourquoi ma vue n'est-elle pas visible?

setContentView(R.layout.main); 
adLinearLayout = (LinearLayout)findViewById(R.id.AdLinearLayout); 

//If ad is found on server...Do this (view is passed into the method) 
LayoutParams layout = new LayoutParams(adLinearLayout.getMeasuredWidth(), (adLinearLayout.getMeasuredWidth()*10)/64); 
adView.setLayoutParams(layout); 
adLinearLayout.removeAllViews(); 
adLinearLayout.addView(adView); 

Et mon interprétation est:

glView = new GLSurfaceView(this); 
glView.setRenderer(this); 
setContentView(glView); 
adLinearLayout = new LinearLayout(this); 
adLinearLayout.setGravity(Gravity.CENTER | Gravity.BOTTOM); 
this.addContentView(adLinearLayout, new LayoutParams(480, 150)); 

//If ad is found on server...Do This (view is passed into the method) 
LayoutParams layout = new LayoutParams(adLinearLayout.getMeasuredWidth(), (adLinearLayout.getMeasuredWidth()*10)/64); 
view.setLayoutParams(layout); 
adLinearLayout.removeAllViews(); 
adLinearLayout.addView(view, new LayoutParams(LayoutParams.WRAP_CONTENT ,LayoutParams.WRAP_CONTENT)); 

Cela montre jamais la vue sur l'écran cependant, est là quelque chose manque?

+0

Avez-vous obtenu la solution? – sahu

Répondre

0

Vous devez utiliser un framelayout pour empiler 2 vues l'une sur l'autre.

Je ne sais pas exactement comment vous avez fait chevauchement avec linearlayout plus tôt. Mais par définition, LinearLayout est utilisé pour afficher les vues enfants dans l'ordre horizontal ou vertical.

A propos de la mise en page de cadre, c'est de la documentation Android

vues d'enfants sont tirés dans une pile, avec l'enfant plus récemment ajouté sur le dessus. La taille de FrameLayout est la taille de son plus grand enfant (plus le remplissage), visible ou non (si le parent de FrameLayout le permet).

Vous pouvez également réaliser un chevauchement avec un RelativeLayout, mais FrameLayout est la bonne façon de procéder.

+0

J'ai utilisé linearlayouts au-dessus d'un autre avant, j'ai essayé de le changer mais ça ne marche toujours pas – Chris

+0

ive mettre à jour ma réponse – blessenm

+0

J'essaye d'implémenter le SDK de TapJoy et ils peuvent employer LinearLayouts avec ceci aussi bien. Dans mon projet précédent, j'ajoute un Linop LinearLayout sur le GLView, ce n'est pas le cas J'ajoute plusieurs layouts dans un LinearLayout – Chris

Questions connexes