我想设计一个包含3个元素的UI,一个TextView tvStart,一个SeekBar sbProgress和一个TextView tvEnd。
我希望tvStart左对齐,tvEnd右对齐,sbProgress位于中心。 我想以编程方式完成所有工作!
我有这段代码:
public void MyLayout() {
LinearLayout layout = new LinearLayout(this);
TextView tvStart = new TextView(this);
SeekBar sbProgress = new SeekBar(this);
TextView tvEnd = new TextView(this);
tvStart.setText("0");
tvEnd.setText("100");
sbProgress.setMax(100);
layout.addView(tvStart);
layout.addView(sbProgress);
layout.addView(tvEnd);
setContentView(layout);
}
但似乎3个元素从左到右排列,而SeekBar非常短。 是否可以使用LinearLayout进行此类操作,还是需要使用RelativeLayout?
答案 0 :(得分:2)
public void MyLayout() {
LinearLayout layout = new LinearLayout(this);
TextView tvStart = new TextView(this);
SeekBar sbProgress = new SeekBar(this);
TextView tvEnd = new TextView(this);
tvStart.setText("0");
tvEnd.setText("100");
sbProgress.setMax(100);
LinearLayout.LayoutParams startParams = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
LinearLayout.LayoutParams sbParams = new LinearLayout.LayoutParams(0, LayoutParams.WRAP_CONTENT);
sbParams.weight = 1;
LinearLayout.LayoutParams endParams = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
layout.addView(tvStart, tvParams);
layout.addView(sbProgress, sbParams);
layout.addView(tvEnd, endParams);
setContentView(layout);
}