Je souhaite ajouter dynamiquement des vues à un LinearLayout
déjà défini en XML.
Je peux ajouter des vues à l'écran mais elles ne sont pas placées "à l'intérieur" du droit LinearLayout
.
Comment puis-je obtenir une référence à cette disposition spécifique à partir du code, similaire à l'obtention d'un View
en utilisant findViewById()
?
Comme Marcarse a souligné que vous pouvez faire
ViewGroup layout = (ViewGroup) findViewById(R.id.your_layout_id);
TextView tv = new TextView(this);
tv.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
tv.setText("Added tv");
layout.addView(tv);
La classe LinearLayout étend ViewGroup qui étend elle-même la classe View. Cela rend l'acquisition d'une référence à une mise en page aussi simple que l'obtention d'une référence à une autre vue.
Cela devrait fonctionner:
LinearLayout layout = (LinearLayout) findViewById(R.id.your_layout_id);
TextView tv = new TextView(this);
tv.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
tv.setText("Added tv");
layout.addView(tv);
Meilleure version: Pour ajouter une autre mise en page dans activité/fragment
LayoutInflater mInflater = LayoutInflater.from(getActivity());
View mProgressBarFooter = mInflater.inflate(R.layout.spinner, null, false);
textLoader = (TextView) mProgressBarFooter.findViewById(R.id.footer_label);
Happy Coding (-: