TextView text = new TextView(v.getContext());
text.setLayoutParams(new TableLayout.LayoutParams(LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT, 1f));
(OR)
TextView tv = new TextView(v.getContext());
LayoutParams params = new TableRow.LayoutParams(0, LayoutParams.WRAP_CONTENT, 1f);
tv.setLayoutParams(params);
.
1f được gọi là trọng số = 1; theo nhu cầu của bạn, bạn có thể cung cấp cho 2f hoặc 3f, lượt xem sẽ di chuyển mã hóa vào không gian. Để đặt khoảng cách được chỉ định giữa các chế độ xem trong Bố cục tuyến tính, hãy sử dụng weightsum cho "LinearLayout".
LinearLayout ll_Outer= (LinearLayout) view.findViewById(R.id.linearview);
LinearLayout llInner = new LinearLayout(this);
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FillParent, LinearLayout.LayoutParams.WrapContent);
llInner.Orientation = Orientation.Horizontal;
llInner.WeightSum = 2;
ll_Outer.AddView(llInner);
Nguồn
2014-12-08 11:52:57
tôi không đề cập đến điều này trước, vì vậy tôi xin lỗi. Nhưng tôi đã thử điều này trước khi hỏi câu hỏi của tôi. Nó làm cho TextView biến mất khỏi bố cục. Nhưng, trên một lưu ý tích cực, tôi thấy rằng việc thiết lập thuộc tính stretch_columns của TableLayout thành 0 gây ra hiệu ứng mà tôi đang tìm kiếm (TextView ở bên trái, các hộp kiểm bên phải). Cảm ơn sự giúp đỡ. – eugene
Nếu bạn đang nhập bố cục XML và bạn không tạo bố cục động, bạn có thể lấy bố cục như sau: 'TextView tv = (TextView) findViewById (R.id.your_textview_inside_the_linearlayout); tv.setLayoutParams (new LinearLayout.LayoutParams (LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, 0.1f)); ' –
Để đặt trọng số bố cục theo lập trình,' TableRow.LayoutParams' nên được sử dụng thay cho 'TableLayout.LayoutParams'. Xem câu trả lời của @ Dorje. – Halil