2013-05-22 31 views
7

Đoạn mã sau đây đang tăng lượt xem tương tự cho 20 lần. Kể từ khi lạm phát là tốn kém. Tôi muốn thổi phồng nó chỉ có một, và sử dụng cùng một cái nhìn cho 20 mặt hàng, tôi chỉ muốn thay đổi dữ liệu có thể nhìn thấy trong giao diện người dùng.sử dụng lại chế độ xem tăng cao trong android

LinearLayout ll = new LinearLayout(context); 
for (int i = 0; i < 20; ++i) { 
    View itemView = inflater.inflate(getLayoutId(), parent, false); 
    itemView.setText(data.getName(i); 
    ll.add(itemView); 
} 

Tôi muốn một cái gì đó như thế này.

LinearLayout ll = new LinearLayout(context); 
View itemView = inflater.inflate(getLayoutId(), parent, false); 
for (int i = 0; i < 20; ++i) { 
    itemView.setText(data.getName(i); 
    ll.add(itemView); 
} 

Nhưng tôi không thể sử dụng mụcView obj theo cách này.

Bất kỳ ai cũng có thể cho tôi biết cách sử dụng chế độ xem nhiều lần khi nó tăng cao.

+0

nếu bạn chỉ có một TextView trong cách bố trí của bạn sau đó bạn có thể tạo TextView lập trình –

+0

Bạn đang tạo 20 khác nhau lượt xem từ cùng một xml. Không thể tạo ra ít hơn 20 lượt xem nếu bạn cần 20 lượt xem. –

+0

textview tôi đã đưa ra một ví dụ, tôi có vài khung nhìn khác. –

Trả lời

0

Bạn không thể làm điều đó. Nếu bạn nghĩ rằng chi phí của nó sau đó tìm một cách khác để tạo bố cục của bạn.

Nhưng hãy xem xét gridViews chẳng hạn. Họ tạo ra một tấn quan điểm và cho họ thấy và nó hoạt động rất tốt.

Bạn không thể thêm cùng một đối tượng của chế độ xem 2 lần vào bố cục. Mỗi đối tượng có trạng thái riêng trong trường hợp của bạn theo cách nói rằng bạn sẽ chia sẻ trạng thái giữa tất cả 20 lượt xem không có ý nghĩa, nghĩa là thay đổi văn bản trên một textView sẽ thay đổi nó trên tất cả các phần còn lại ..

Chỉ cần tăng 20 lượt xem riêng biệt và điền chúng một cách thích hợp.

Cũng xem xét sử dụng ListView hoặc GridView nếu bạn thực sự có cùng một giao diện chính xác, nó có thể cung cấp một số tính năng đẹp như xem tái chế.

-1

Bạn nên sử dụng ViewHolder patern:

http://developer.android.com/training/improving-layouts/smooth-scrolling.html#ViewHolder

nó nên làm tất cả mọi thứ Bạn muốn

+0

Tôi muốn thêm 20 chế độ xem này vào chế độ xem Cuộn ngang. Chế độ xem danh sách có bộ điều hợp sẽ cung cấp chế độ xem chuyển đổi có thể tái sử dụng. Cho dù chế độ xem cuộn ngang cũng có bất kỳ bộ điều hợp nào sẽ cung cấp dữ liệu. –

+0

Viewholder doesnt clone views. Tạo mã để sao chép chế độ xem trước khi thêm vào bố cục –

+0

trình xem chỉ là một mẫu để làm việc với ListView, câu hỏi ban đầu ngụ ý rằng ListView không phải là một tùy chọn –

Các vấn đề liên quan