我正在创建一个扩展LinearLayout
的类。我正在尝试以编程方式进行布局。这是我到目前为止所做的:
RelativeLayout.LayoutParams parentParam = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.MATCH_PARENT,
RelativeLayout.LayoutParams.MATCH_PARENT);
this.setLayoutParams(parentParam);
this.setOrientation(LinearLayout.VERTICAL);
WebView webView = new WebView(context);
LinearLayout.LayoutParams webViewParam = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.MATCH_PARENT);
webView.setLayoutParams(webViewParam);
this.addView(webView);
pb = new ProgressBar(context);
LinearLayout.LayoutParams pbParam = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.WRAP_CONTENT);
pbParam.gravity = Gravity.CENTER_HORIZONTAL | Gravity.CENTER_VERTICAL;
pb.setLayoutParams(pbParam);
webView.addView(pb);
我的所有事情都工作正常,WebView
和 ProgressBar
可见并且正在执行相应的任务,但我试图将 ProgressBar
在屏幕的中心
。
我在这里缺少什么。任何类型的输入都将受到赞赏。
编辑: 现在的输出如下所示:
最佳答案
这是我将 ProgressBar
置于中心的方法。我已经使用 ScrollView
来达到我的目的。这是我使用过的代码:
RelativeLayout.LayoutParams parentParam = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.MATCH_PARENT,
RelativeLayout.LayoutParams.MATCH_PARENT);
this.setLayoutParams(parentParam);
this.setOrientation(LinearLayout.VERTICAL);
scrollView = new ScrollView(context);
scrollView.setLayoutParams(new FrameLayout.LayoutParams(
FrameLayout.LayoutParams.MATCH_PARENT,
FrameLayout.LayoutParams.MATCH_PARENT,
Gravity.CENTER_HORIZONTAL | Gravity.CENTER_VERTICAL));
scrollView.setFillViewport(true);
scrollView.setBackgroundColor(Color.TRANSPARENT);
pb = new ProgressBar(context);
LinearLayout.LayoutParams pbParam = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.WRAP_CONTENT);
pb.setLayoutParams(pbParam);
RelativeLayout rel = new RelativeLayout(context);
RelativeLayout.LayoutParams relParam = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.WRAP_CONTENT,
RelativeLayout.LayoutParams.WRAP_CONTENT);
relParam.addRule(RelativeLayout.CENTER_IN_PARENT);
rel.addView(pb, relParam);
scrollView.addView(rel);
webView = new WebView(context);
LinearLayout.LayoutParams webViewParam = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.MATCH_PARENT);
webViewParam.gravity = Gravity.CENTER_HORIZONTAL
| Gravity.CENTER_VERTICAL;
webView.setLayoutParams(webViewParam);
this.addView(scrollView);
this.addView(webView);
希望这能帮助其他正在尝试同样事情的人。
关于android - 以编程方式将进度条放在屏幕的中心,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21378225/