2011-01-31 27 views

Trả lời

86
TextView pf = new TextView(context); 
pf.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); 

hoặc

parentView.addView(pf, new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); 
+1

sự khác biệt giữa là gì hai mã đó? –

+6

'android.view.ViewGroup $ LayoutParams không thể được truyền tới android.widget.LinearLayout $ LayoutParams' –

+0

tốt, khác biệt chính là ở mã đầu tiên, chúng tôi đang tạo một TextView mới với các cài đặt đó. Trong phần thứ hai, chúng ta sẽ thêm vào một khung nhìn hiện có, và chúng ta cũng đang thiết lập các tham số đó. Đối với các vấn đề diễn viên, tôi nghĩ rằng bạn phải đúc lớp thích hợp – Franco

53

Có một cách khác để đạt được kết quả tương tự. Trong trường hợp bạn cần phải thiết lập chỉ có một tham số, ví dụ 'chiều cao':

TextView textView = (TextView)findViewById(R.id.text_view); 
ViewGroup.LayoutParams params = textView.getLayoutParams(); 
params.height = ViewGroup.LayoutParams.WRAP_CONTENT; 
textView.setLayoutParams(params); 
+0

Điều này làm việc tuyệt vời. Nếu điều này được thực hiện trên 'LinearLayout', nó không xuất hiện' ll.invalidate() 'là cần thiết. Tại sao? –

26

Giải pháp đơn giản nhất để thay đổi TextView chiều rộng để WRAP_CONTENT

textView.getLayoutParams().width = LinearLayout.LayoutParams.WRAP_CONTENT; // For change `TextView` width to `WRAP_CONTENT` 
//textView.getLayoutParams().width = 200; // For change `TextView` width to 200 

Hy vọng điều này giúp đỡ

+3

Giải pháp đơn giản và phù hợp, vì nó không ghi đè các tham số khác. – CoolMind

+0

Đánh dấu anwer của tôi để xóa vì điều này đơn giản hơn rất nhiều. – FrankKrumnow

+1

Đây là giải pháp tốt nhất –

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