Onlayout méthode sur la mise en page personnalisée extension RelativeLayout
Quelle est la bonne façon de remplacer onLayout méthode dans une mise en page personnalisée à l'extension de la RelativeLayout?
Je suis en train de placer tous les points de vue dans le tri d'un tableau. L'idée est de remplir une ligne avec ImageViews jusqu'à ce qu'il est plein et puis continuer dans la nouvelle ligne.
@Override
protected void onLayout(boolean changed, int l, int t, int r, int b) {
super.onLayout(changed, l, t, r, b);
int idOfViewToTheLeft = 1;
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(getContext(),);
ImageView bookmark;
for(int counter = 1; counter < getChildCount(); counter++) {
bookmark = (ImageView) findViewById(counter);
if(counter > 1) {
if(this.getWidth() > (bookmark.getLeft() + bookmark.getWidth())) {
params.addRule(RelativeLayout.RIGHT_OF, bookmark.getId() - 1);
} else {
params.addRule(RelativeLayout.BELOW, idOfViewToTheLeft);
idOfViewToTheLeft = bookmark.getId();
}
}
bookmark.setScaleType(ScaleType.CENTER_CROP);
}
}
}
OriginalL'auteur lpandzic | 2011-02-13
Vous devez vous connecter pour publier un commentaire.
J'explique comment écrire des mises en page personnalisées (et en particulier un FlowLayout, qui est ce que vous voulez faire il me semble) dans cette présentation
Vidéo disponible ici.
J'ai un autre problème et il semble que c'est lié à la relative mise en page. Premier fow de ImageViews est très bien à l'exception de la dernière qui est coupée, après ceux qui devraient être dans la ligne suivante n'apparaît pas. J'ai utilisé de la lp.addRule(RelativeLayout.Ci-DESSOUS, idOfViewToTheLeft); mais il ne semble pas fonctionner. Suis-je en train de faire quelque chose de mal, qu'il ne suffit seulement de remplacer onLayout méthode? @Romain Guy
Guy :Merci beaucoup.Excellent tutoriel.
Contenu inaccessible. Parley est aux prises avec le mauvais temps de chargement et de merde de l'INTERFACE utilisateur, Google Docs zipfile ne charge pas entièrement. Peut-être un problème sur ma fin, mais je préfère avoir la réponse exacte à la question dans le post StackOverflow.
OriginalL'auteur Romain Guy