Existe-t-il une possibilité d'ajouter une vue ou un dérivé (bouton, textview, imageview etc ...) à une autre vue sans avoir à passer par des mises en page?Ajout de vues à une autre vue
J'ai une classe appelée ScreenView, elle dérive de View (par exemple, public class ScreenView extends View). Je voulais afficher du texte, des étiquettes, des images, etc.
Sur un iPhone c'est trivial, il suffit de créer mes objets et d'utiliser la méthode addSubview; vous pouvez intégrer des objets d'interface utilisateur dans un autre. La plupart des kits d'outils de l'interface utilisateur fonctionnent également de cette manière.
Problème avec les mises en page est que je n'ai pas trouvé un moyen facile de positionner correctement une sous-vue (disons une vue de texte) dans un emplacement donné de la vue englobante. Je voulais que l'un contienne l'autre ...
J'espérais avoir manqué quelque chose dans la documentation (ce qui est loin d'être intuitif c'est certain) et je pourrais faire quelque chose comme myView.addView (subview). Mais ce n'est pas le cas :)
Comme une question parallèle, quel est le plus proche de UILabel de l'iPhone dans le monde Android? Un UILabel peut contenir un texte ou un graphique. En ce moment j'utilise TextView et ImageView mais ils ne sont nulle part aussi flexible quand il s'agit de mise en page comme un UILabel
Editer: Rendre ma vue hériter de ViewGoup à la place, laissez-moi ajouter sous-vue .. Cependant, je vouloir dessiner à mon avis. J'ai trouvé que lorsque ScreenView étend ViewGroup, la fonction onDraw n'est jamais appelée alors.
Quelque chose comme:
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
Paint paint = new Paint();
paint.setStyle(Paint.Style.FILL);
// make the entire canvas yellow
paint.setColor(Color.YELLOW);
canvas.drawPaint(paint);
}
peindrais à mon avis jaune s'étend ScreenView Vue; mais pas si elle étend ViewGroup.
Comment dessiner directement dans la vue alors?
Merci JY
On dirait que la classe ViewGroup ferait l'affaire .. – jyavenard