我的Android布局无法按预期工作

时间:2014-09-16 03:49:58

标签: android android-layout

我想设计一个包含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?

1 个答案:

答案 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);
}