Flotteur de vues, de sorte qu'ils ne prennent pas d'espace dans la mise en page
Est-il possible de flotter les éléments ci-dessus d'autres éléments dans Android, de sorte qu'elles n'affectent PAS la mise en page de leur conteneur?
L'effet que je veux réaliser est un flottant de l'info-bulle-comme élément:
La boîte jaune ci-dessus est l'élément que je veux flotter au-dessus des autres éléments, mais comme vous pouvez le voir, il pousse son conteneur vers le bas de la création de l'espace noir en dessous de la barre verte, au lieu de flotter au-dessus de la zone grise en dessous.
RelativeLayout pouvez positionner l'élément de manière appropriée, mais je ne peux pas trouver un moyen de rendre l'élément positionné de ne pas étendre les limites de son conteneur. Est-ce même possible sur Android?
ANALOGIES
- dans le monde du web, l'équivalent est un élément qui a "position: absolute" et n'est donc pas compté comme faisant partie du "flux" (ie: mise en page)
- WPF l'équivalent serait un élément qui est positionné à l'intérieur d'une Toile. La Toile a ses propres limites qui prennent de la place dans la mise en page, mais ses enfants peut se situer en dehors de ses limites et de ne pas affecter la mise en page
- dans le monde iOS chaque point de vue est positionné comme une toile (puisqu'il n'existe pas de disposition des gestionnaires) afin que ce comportement est réalisé bysimply la compensation de l'élément de cadre de ses propriétés x et y
- qu'entendez-vous par "RelativeLayout pouvez positionner l'élément de manière appropriée, mais je ne peux pas trouver un moyen de rendre l'élément positionné de ne pas étendre les limites de son conteneur"? le conteneur est le relativeLayout?
Vous devez vous connecter pour publier un commentaire.
Alors vous avez tort le conteneur.
Par exemple:
Ici, sur le petit bouton flotte sur le grand bouton. Le petit bouton qui ne fonctionne pas "étendre les limites de son conteneur", tout simplement parce que le conteneur est l'ensemble du contenu de la vue.
Vous configurez le
RelativeLayout
(ouFrameLayout
) conteneur à être celui qui contient le possible de la zone de votre enfant peut flotter au-dessus. Si c'est la totalité de l'écran ou seulement un sous-ensemble est à vous. A l'inverse, si votre enfant est affectant la limite de son conteneur, vous utilisez le mauvais conteneur, ou le besoin de configurer un conteneur spécialement pour ce rôle.Dans un autre exemple, Roman Nurik montre comment mettre en œuvre un flottant "annuler de la barre", qui s'apparente à de Gmail:
Prendre un coup d'oeil à la Relative mises en android: par exemple lorsque vous ne spécifiez une position à tous les points de vue au sein de la relative mise en page ils vont flotter au-dessus des autres.
http://developer.android.com/guide/topics/ui/layout/relative.html
Exemple:
Edit: CommonsWare a été plus rapide 😉 jetez un oeil à sa belle réponse!