1

在我的 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);

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

有谁知道如何做到这一点?

谢谢。

4

3 回答 3

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/

于 2013-08-27T04:15:53.193 回答
0

尝试使用它

 checklistprogress.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT, 1f));
于 2013-08-27T04:17:49.963 回答
0

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

ProgressBar checklistprogress = new ProgressBar(this, null, android.R.attr.progressBarStyleLarge);
于 2013-08-27T04:19:07.350 回答