2012-02-03 64 views
7

Ứng dụng tôi đang thực hiện yêu cầu bố cục động hiển thị HorizontalScrollView của cấu hình. Một hồ sơ chỉ đơn giản là một RelativeLayout với một hình ảnh và một số văn bản. Vì tôi lấy dữ liệu từ tệp dữ liệu, tôi cần tạo bố cục Tương đối cho mỗi tiểu sử. Lúc đầu, tôi tạo ra mỗi RelativeLayout lập trình trong vòng lặp for và sau đó thêm nó vào khung nhìn cha mẹ. Điều này làm việc, nhưng tôi không muốn làm theo cách này. Tôi muốn sử dụng các tệp bố cục khác nhau dựa trên kích thước màn hình của thiết bị, v.v.Android: Có thể tạo bản sao Chế độ xem không?

Sau đó tôi nghĩ. Vâng, nếu tôi có Giao diện chỉ với một tiểu sử trên đó thì sao? Mã của tôi có thể nhận được một hồ sơ đó với findViewById() và sau đó tạo các cấu hình mới dựa trên nó! Nói cách khác:

// get the layout 
    profileLayout = (LinearLayout) findViewById(R.id.profileLayout);   

    // get the first profile in the layout 
    originalProfile = (RelativeLayout) findViewById(R.id.profile1); 

    // make copy of profile 
    temporaryProfile = originalProfile; 

    // make changes to the this profile and add it back 
    profileLayout.addView(temporaryProfile); 

Tất nhiên, điều này không hoạt động vì đây là java và tạm thờiProfile giờ đây là tham chiếu đến originalProfile. Vậy có cách nào để tạo một bản sao của RelativeLayout này không? Tôi biết về LayoutInflater, nhưng tôi vẫn không hiểu nó hoạt động như thế nào. Ngoài ra còn có Object.clone().

Trả lời

8

Không quá nhiều. Âm thanh như trường hợp cụ thể của bạn có thể hưởng lợi từ một ListView của một số loại và một bộ chuyển đổi (xem tài nguyên như this để biết thông tin). Nếu không, thì một LayoutInflater câu trả lời hay nhất vì nó chính xác những gì bạn muốn. Lấy một cái bạn có thể sử dụng nó để "thổi phồng" bất kỳ chế độ xem nào bạn đã xác định trong các tệp bố cục XML của bạn và làm bất cứ điều gì bạn muốn với nó.

Here's một cuộc thảo luận tuyệt vời về inflater.

+0

cảm ơn bạn đã phản hồi! –

0

Tại sao không chỉ đơn giản sử dụng tệp bao gồm trong tệp xml cho bố cục mà bạn muốn.

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