如何在android中填充线性布局?

时间:2013-08-27 04:05:00

标签: java android android-linearlayout

在我的Android应用程序中,我想水平创建一个线性布局,并在左侧添加一个textview,在右侧添加一个进度条,我希望textview包含宽度的内容。并且进度条应该(宽度)在屏幕上水平占据剩余空间。

这是我的代码:

        LinearLayout.LayoutParams percentWidth = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);

        LinearLayout percentLayout = new LinearLayout(this);
        percentLayout.setOrientation(LinearLayout.HORIZONTAL);
        percentLayout.setLayoutParams(percentWidth);

        textview = new TextView(this);
        textview.setText(String.format("Tasks Completed: %d%%", personobj.percentage));
        percentLayout.addView(textview);

        ProgressBar checklistprogress = new ProgressBar(this, null, android.R.attr.progressBarStyleHorizontal);
        checklistprogress.setProgress(personobj.percentage);
        percentLayout.addView(checklistprogress);

        LocationLayout.addView(percentLayout);

但是这不起作用,进度条宽度没有完全展开。它只有一厘米宽。

有谁知道怎么做?

感谢。

3 个答案:

答案 0 :(得分:0)

我建议使用RelativeLayout来做这种事情。但是,如果要使用线性布局,则需要使用layout_weight属性。使用layout_weight,您可以指定多个视图之间的大小比率。在下面的代码中,最后一个参数是布局权重:

LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(
                             LayoutParams.MATCH_PARENT,
                             LayoutParams.MATCH_PARENT, 1.0f);

查看本文以更好地理解layout_weight http://www.chess-ix.com/blog/the-use-of-layout_weight-with-android-layouts/

答案 1 :(得分:0)

尝试使用它

 checklistprogress.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT, 1f));

答案 2 :(得分:0)

@omega:你可以试试这段代码。它用于将进度条的样式更改为大。

ProgressBar checklistprogress = new ProgressBar(this, null, android.R.attr.progressBarStyleLarge);