Est-il possible d'utiliser du code Java pour écrire dans le fichier main.xml? Je veux apporter quelques changements à la mise en page mais je l'ai basé sur les valeurs reçues de Java?Disposition Android et XML
Répondre
Oui, vous pouvez. En savoir plus sur YOURLAYOUT.LayoutParams
http://developer.android.com/reference/android/widget/LinearLayout.LayoutParams.html Utilisez le addRule()
et indiquez ce que vous devez à votre objet de mise en page. Modifiez les valeurs avant de faire setContentView();
Quelque chose comme:
RelativeLayout rl = new RelativeLayout(this);
RelativeLayout.LayoutParams rlp= new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.FILL_PARENT);
rlp.addRule(RelativeLayout.VISIBLE); //set the rules and parameters before you do setLayoutParams();
rl.setLayoutParams(rlp);
setContentView(rl);
Ou si vous souhaitez apporter des modifications sur la mise en page réelle du xml, alors vous ne le gonfler
LayoutInflater inflater = (LayoutInflater)this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View v = inflater.inflate(R.layout.main, null);
RelativeLayout rl = (RelativeLayout)v.findViewById(R.id.relativeLayout1);
RelativeLayout.LayoutParams rlp= new RelativeLayout.LayoutParams(new LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT,RelativeLayout.LayoutParams.WRAP_CONTENT));
rlp.addRule(RelativeLayout.VISIBLE);
rl.setLayoutParams(new LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT,RelativeLayout.LayoutParams.WRAP_CONTENT));
setContentView(rl);
Vous pouvez ne changez en fait aucun fichier de mise en page xml à partir de l'application. Une fois emballés, les fichiers de disposition sont en lecture seule. Ce que vous pouvez faire (et je pense que c'est ce que suggère Nikola) est d'utiliser l'API pour soit définir votre mise en page en utilisant du code ou modifier la mise en page une fois qu'il a été gonflé à partir de xml.
Si vous souhaitez calculer ou récupérer des données qui définissent votre mise en page, puis vous rappeler les données pour la prochaine exécution de l'application, vous pouvez utiliser l'une des offres data storage methods proposées par Android.
- 1. Combiner Toile et disposition (Android)
- 2. Raccourci entre la disposition graphique et XML
- 3. Disposition personnalisée avec XML
- 4. Disposition de disposition de table dans android
- 5. Bouton avec disposition XML personnalisée
- 6. Disposition Android: combiner LinearLayout et TableLaout
- 7. Centre Cette disposition Android?
- 8. Fichier de disposition Android
- 9. Disposition du centre Android
- 10. Android Disposition relative Centré
- 11. Disposition Android pour définir l'écran
- 12. définition de disposition de xml dans android 1.5
- 13. Où est une référence à la disposition android XML UI?
- 14. Android: Comment créer une telle disposition dynamiquement (pas par xml)?
- 15. xml boîte de disposition ou d'autres suggestions
- 16. Disposition des onglets Android
- 17. Disposition extensible dans android
- 18. Disposition relative et disposition linéaire
- 19. Disposition Android LinearLayoutProblem
- 20. disposition linéaire Android alignement Questions
- 21. Disposition transparente dans Android?
- 22. Disposition de base Android
- 23. Modulariser la disposition/Vues dans Android
- 24. Android + Quelle disposition suggéreriez-vous?
- 25. Cartes Android et XML
- 26. Utilisation Android et XML
- 27. Modification de la disposition Android
- 28. Disposition Android Ne fonctionne pas
- 29. Android: Modification des fichiers de disposition numéro
- 30. NotFoundException dans l'éditeur de disposition pour Android?
Les deux approches fonctionnent. Je les ai testés. J'ai initialisé l'android: layout_width = "22px" et la même chose pour la hauteur. Et ils se sont avérés fonctionner. :) –