2010-08-18 38 views
7

Tôi có chế độ xem tùy chỉnh (phần mở rộng của TextView) mà tôi muốn tự động thêm vào Bố cục của mình (không muốn đưa nó vào tệp main.xml).tự động thêm chế độ xem vào bố cục hoạt động

Sách nói để tìm nạp RelativeLayout bằng cách sử dụng findViewById() trong mã java của tôi rồi tạo một thể hiện mới của chế độ xem tùy chỉnh của tôi, sau đó sử dụng addView trên RelativeLayout để thêm chế độ xem mới.

Tôi không nhận được bất kỳ lỗi nào, nhưng khi tôi nhấp vào nút của tôi để thêm chế độ xem mới, không có gì đang xảy ra (chế độ xem không được thêm). Tôi có cần đặt các thuộc tính bổ sung trên chế độ xem tùy chỉnh của mình (chiều rộng bố cục, chiều cao bố cục chẳng hạn) để nó được hiển thị không?

EDIT: thêm mã

// changed to an imageview as I thought it might be easier to see an image 
RelativeLayout rel = (RelativeLayout) findViewById(R.id.rellay); 
MyCustomImageView mciv = new MyCustomImageView(null); 
mciv.setId(5); 
LayoutParams p = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
mciv.setLayoutParams(p); 
mciv.setImageResource(R.drawable.someImage); 
rel.Addview(mciv); 

Trả lời

3

Xin vui lòng gửi mã của bạn, nơi bạn có thêm xem. Nhưng có, bạn có thể thiếu các tham số cho chiều rộng và chiều cao. Hãy thử một cái gì đó như

LayoutParams p = new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.FILL_PARENT);  
txtView.setLayoutParams(p); 

hoặc những gì bạn muốn chiều rộng và chiều cao. Cũng trong bố cục xml, layout_width và layout_height là các thuộc tính bắt buộc.

+0

ok Tôi đã thay đổi chế độ xem tùy chỉnh thành một lần xem hình ảnh vì tôi nghĩ rằng sẽ dễ dàng hơn để xem trên Hoạt động. Tôi chỉnh sửa OP của tôi để bao gồm một số mã ... vẫn không nhìn thấy bất cứ điều gì. Vì nó là một dạng xem tương đối, tôi có cần bao gồm một cái gì đó để cho nó biết nơi đặt nó trong phương thức AddView() không? –

+0

trong xml nó sẽ giống như android: layout_below hoặc android: layout_toRightOf, nhưng không chắc chắn nếu nó được yêu cầu hoặc làm thế nào để đặt nó trong mã java adhoc. –

+0

hmm ... ya Tôi biết bit xml, nhưng tôi muốn điều này xảy ra theo chương trình. Tôi chỉ cố gắng đặt nó trên một chủ đề khác nhau suy nghĩ rằng có thể là vấn đề (không thể cập nhật giao diện người dùng trên cùng một chủ đề, và điều đó đã không sửa chữa nó). Tôi đang thua lỗ. –

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