2012-08-31 63 views
5

Tôi đang xây dựng một ứng dụng tạo ra một số nhãn và chế độ xem động. Tôi đã xác định cách "chế độ xem tùy chỉnh" của tôi nên xem trong bố cục xml và từ mã tôi thổi phồng bố cục này.Làm cách nào để xem bộ nhớ cache trong Android?

Do bố cục tăng cao sẽ luôn như cũ, tôi muốn thực hiện bước này chỉ một lần. Sau khi tôi có bố cục, tôi muốn lưu nó vào bộ nhớ cache và sử dụng nó vào lần tới khi tôi cần nó.

Vấn đề là nếu tôi đặt bố cục tăng cao trong bộ nhớ cache (trong ví dụ băm) và thêm bố cục đó vào bố cục gốc, lần sau khi tôi thử thêm lại lần nữa (lần này tôi sẽ lấy bố cục từ bộ nhớ cache) hệ thống nói rằng bố cục của tôi đã có một phụ huynh.

Bạn có biết phương pháp nào để tách chế độ xem con khỏi cha mẹ mà không xóa chế độ xem con không?

gia tăng một số mã:

private static HashMap<String, LinearLayout> mComponentsCache; 

// inflate and add the layout in cache 
layout = (LinearLayout)mLf.inflate(R.layout.form_textbox, mHolder, false); 
mComponentsCache.put(FormFieldType.TYPE_TEXT, layout); 
+0

Bạn định vị chính xác cách bố trí bộ nhớ đệm và tại sao bạn làm theo cách này? – DroidBender

+2

Tôi muốn làm điều đó theo cách này bởi vì không có điểm nào để làm nổi bật cùng một lượt xem đã bị thổi phồng. Ví dụ, tôi phải hiển thị 5 hộp văn bản có cùng bố cục nhưng nội dung khác nhau. –

Trả lời

9

Bạn có thể không thực sự làm được điều này. Tôi trích dẫn nhận xét của bạn

I want to do it in this way because is no point to re-inflate the same view which was already inflated. As an example I have to show 5 textboxes which have the same layout but different content.

Bạn sẽ phải thổi phồng mỗi lần bởi vì bạn cần 5 trường hợp khác nhau của textbox này. Nếu bạn không muốn thổi phồng, bạn nên tìm cách sao chép bố cục đã được tạo mà sẽ không giúp cải thiện vì sao chép cũng "tốn kém". Như một vấn đề của thực tế, chỉ để làm cho nó rõ ràng, lạm phát xem không trải qua phân tích cú pháp XML (chỉ trong trường hợp bạn nghĩ như vậy), nó được biên dịch mã và, do đó, thực tế là đặt một nỗ lực trong việc thực hiện một cách tạo bản sao của chế độ xem là vô nghĩa.

Bottom-line: Dính vào lạm phát.

+0

Cảm ơn bạn. Tôi sẽ dính vào lạm phát :) –

+0

"Như một vấn đề của thực tế, chỉ để làm cho nó rõ ràng, lạm phát xem không trải qua XML phân tích cú pháp (chỉ trong trường hợp bạn nghĩ như vậy), nó được biên dịch mã" .... giải quyết một của các confisions tôi đã có ... thnx :-) –

+0

Nếu đây là trường hợp, sau đó làm thế nào để bộ nhớ đệm của hàng listview làm việc? Có vẻ như chúng tôi có thể sử dụng lại lượt xem ở đó, làm cách nào để thực hiện điều đó? – Justin

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