在我的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);
但是这不起作用,进度条宽度没有完全展开。它只有一厘米宽。
有谁知道怎么做?
感谢。
答案 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);