sarakinos Δημοσ. 11 Οκτωβρίου 2013 Δημοσ. 11 Οκτωβρίου 2013 Καλησπέρα , προσπαθώ να προσθέτω το ίδιο view κάθε φορά που πατάω ένα κουμπί στο υπάρχων layout προγραμματιστικά . Wrapper --------------------------------- <LinearLayout> </LinearLayout> Item --------------------------------- <LinearLayout> <TextView /> <EditText /> </LinearLayout> Θέλω κάθε φορά που πατάω το κουμπί να προσθέτω το παραπάνω linearLayout μέσα στο wrapper κάθε φορά το ένα κάτω από το άλλο . Γίνεται με listView?
Directx Δημοσ. 11 Οκτωβρίου 2013 Δημοσ. 11 Οκτωβρίου 2013 Μπορείς με την βοήθεια της διαδικασίας View.addView(child_view) (και ανάλογες) όπου View θα είναι το LinearLayout (ParentView) που θα προστίθεται κάθε νέο child_view. Το child_view είναι ένα View που θα περιέχει το Layout resource που επιθυμείς να προσθέτεις στο LinearLayout (Parent) View, το σχεδιάζεις και αυτό κανονικά μέσω του designer, βάζεις σε αυτό το TextView και το EditText που θες κλπ (και το φορτώνεις μέσο της View.Inflate). - Φυσικά θα πρέπει να έχεις υπόψη σου ότι τα View που προσθέτεις δυναμικά θα πρέπει να διατηρούνται κατά το onPause/onResume και κατά διάφορα Configuration changed events που προκαλούν onPause/onResume (καλύτερα κλείσε τα πιο ενοχλητικά από το AndroidManifest.xml) διαφορετικά θα έχεις μπελάδες κλπ. - Θα πρέπει επίσης να κρατάς (book-keeping) κάπου τα νέα View για εύκολο reference κλπ. - Εννοείται το Parent View (LinearLayout) σου στο οποίο προστίθενται τα child_view θα πρέπει να είναι εντός ScrollView. - Η όλη διαδικασία χρειάζεται δουλεία αλλά είναι εφικτό να γίνει (οι περισσότεροι κατάλογοι [Contacts] στα κινητά τηλέφωνα με Android κάπως έτσι αναπτύσσονται ). - και μην το παρακάνεις με πολλά children Views!!
nilosgr Δημοσ. 11 Οκτωβρίου 2013 Δημοσ. 11 Οκτωβρίου 2013 Γιατί να μην βάλει listview ; Ναι, μια χαρά γίνεται με listview. Ψάξε ένα παράδειγμα στο google και θα καταλάβεις. Υγ: το μόνο "δύσκολο" είναι να φτιάξεις τον Adapter
Directx Δημοσ. 11 Οκτωβρίου 2013 Δημοσ. 11 Οκτωβρίου 2013 Γιατί να μην βάλει listview ; Ναι, μια χαρά γίνεται με listview. Ψάξε ένα παράδειγμα στο google και θα καταλάβεις. Υγ: το μόνο "δύσκολο" είναι να φτιάξεις τον Adapter Όπως θέλεις γίνεται, για ListView ας δει εδώ 1
warlock9_0 Δημοσ. 12 Οκτωβρίου 2013 Δημοσ. 12 Οκτωβρίου 2013 οσα children view και να βάλεις πάντως δεν υπάρχει πρόβλημα επίσης αν έχουν id τα σώζει μόνο του στα διάφορα states και όντως αν μπορείς να το κάνεις με listview θα είναι το καλύτερο
Directx Δημοσ. 12 Οκτωβρίου 2013 Δημοσ. 12 Οκτωβρίου 2013 οσα children view και να βάλεις πάντως δεν υπάρχει πρόβλημα επίσης αν έχουν id τα σώζει μόνο του στα διάφορα states και όντως αν μπορείς να το κάνεις με listview θα είναι το καλύτερο Σε αντίθεση με το ListView το οποίο έχει εσωτερικούς μηχανισμούς που του επιτρέπουν να παρουσιάζει με ελάχιστη δέσμευση πόρων ανεξάρτητο αριθμό αντικειμένων, το LinearLayout/ScrollView δεν υποστηρίζουν κάτι τέτοιο οπότε η προσθήκη View σε αυτά χρειάζεται σύνεση - διαφορετικά θα το μετανιώσεις. Χμ.. είτε ορίσεις είτε όχι Id (πχ. View.setId), σε περιπτώσεις αλλαγής activity state (πχ. orientation, screenSize κλπ) τα children views μπορεί να χαθούν.
sarakinos Δημοσ. 15 Οκτωβρίου 2013 Μέλος Δημοσ. 15 Οκτωβρίου 2013 Ευχαριστώ καταρχάς για τις απαντήσεις σας.Το έκανα με LinearLayout προσθέτοντας κάθε φορά από ένα child.Το orientation δεν αλλάζει ούτε θέλω να κρατάω το state του Activity . Το μόνο που με ενδιαφέρει είναι να δίνω διαφορετικά id σε κάθε child για να τα ξεχωρίζω ώστε να τα έχω σε βάση.
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα