Tôi có LinearLayout với hướng dọc là phụ huynh, tôi muốn thêm một số chế độ xem theo chương trình nhiều lần vào cha mẹ này. Ngay bây giờ tôi đang thổi phồng đứa trẻ mỗi khi nhận được các tham chiếu mới cho mọi phần tử giao diện người dùng trước khi thêm vào cha mẹ. Điều này dường như không hiệu quả lắm, có cách nào tốt hơn để làm điều này không.Cách thêm cùng một chế độ xem cho cha mẹ nhiều lần bằng cách tăng nó chỉ một lần
Mã hiện tại tôi đang sử dụng ở bên dưới, Nếu tôi chỉ thổi phồng một lần trước đó cho vòng lặp, tôi nhận được lỗi thời gian chạy ", anh ta đã chỉ định trẻ đã có cha/mẹ trước tiên bạn phải gọi removeView().
LayoutInflater inflator = LayoutInflater.from(getBaseContext());
LinearLayout parentPanel = findViewById(R.id.parent_pannel);
ArrayList<String> myList = getData();
for(String data : myList) {
// inflate child
View item = inflator.inflate(R.layout.list_item, null);
// initialize review UI
TextView dataText = (TextView) item.findViewById(R.id.data);
// set data
dataText.setText(data);
// add child
parentPanel.addView(item);
}
Tôi đồng ý, sẽ thật ngọt ngào nếu có cách dễ dàng để "sao chép" lượt xem, nhưng tôi vẫn chưa tìm thấy. Thổi phồng hơn và hơn nó là. Tuy nhiên, tôi phải nói rằng từ đoạn mã của bạn, có vẻ như với tôi rằng bạn muốn sử dụng một 'ListView'. – dmon
Tôi e rằng điều này là do thiết kế. Bạn không thể có nhiều cha mẹ cho một chế độ xem, cũng như thêm cùng một chế độ xem cho cha mẹ nhiều lần. Nó sẽ khá khó để viết mã lỗi cho ViewGroups (và kịch bản tương tự) nếu điều này không phải như vậy. – inazaruk
@dmon Tôi không thiết kế bố cục của mình để sử dụng ListView vì nó sẽ làm cho mã phức tạp hơn vì cách tôi muốn mọi thứ được sắp xếp. Tôi đoán cho hiệu quả tôi phải di chuyển tất cả mọi thứ để ListView. – mkso