J'essaye de gonfler xml-layout dans la classe View personnalisée, qui est ensuite placée dans LinearLayout dans un logiciel réel. Après quelques recherches sur Google j'ai réussi à créer classe personnalisée qui gonfle la mise en page en utilisant la classe suivante:Comment gonfler xml-layout en enfant Voir
public class LitteringView extends RelativeLayout
{
public LitteringView(Context context) {
super(context);
// TODO Auto-generated constructor stub
View.inflate(context, R.layout.littering_layout, this);
}
public LitteringView(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
}
@Override
protected void onLayout(boolean changed, int l, int t, int r, int b) {
// TODO Auto-generated method stub
for(int i = 0 ; i < getChildCount() ; i++){
getChildAt(i).layout(l, t, r, b);
}
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
// TODO Auto-generated method stub
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}
}
Maintenant, il gonfle certainement quand je l'ajoute à la LinearLayout:
layout.addView(new LitteringView(getActivity()));
Le problème est qu'il faut la tout l'écran alors que l'écran devrait être divisé également entre les trois enfants de LinearLayout. D'autres vues sont également créées dynamiquement. Comment je peux l'empêcher de prendre tout l'espace? J'essaie de créer un View/class personnalisé et d'y regrouper ses fonctions que je pourrais ensuite facilement ajouter à la mise en page parente (dans ce cas le LinearLayout) tout en voulant utiliser xml pour définir la mise en page du View .