如何将子视图添加到 ViewGroup 的中心
How to Add a Child View to the Center of a ViewGroup
我在 this 之后创建了一个自定义循环 ProgressBar。现在我想将这个进度条添加到布局的中心。问题是它被添加到 activity 的左上角,无论我如何更改传递给 addView() 的 LayoutParams 属性。代码如下:
// Create a progress bar to display while the list loads
mProgressBar = new DualProgressView(getApplicationContext());
ViewGroup root = findViewById(android.R.id.content);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(500, 500, Gravity.CENTER);
root.addView(mProgressBar,params);
- 将进度条的高度和宽度设置为 wrap_content,或者说 xml 中的 40sp。
- 将属性 android:layout_gravity="center" 设置到您的 LinearLayout 中的 ProgressBar。
或以编程方式,试试这个:
ViewGroup layout = (ViewGroup) findViewById(android.R.id.content).getRootView();
LinearLayout.LayoutParams params = new
LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.MATCH_PARENT);
LinearLayout ll = new LinearLayout(thisActivity);
ll.setGravity(Gravity.CENTER);
ll.addView(progressBar);
layout.addView(ll,params);
我在 this 之后创建了一个自定义循环 ProgressBar。现在我想将这个进度条添加到布局的中心。问题是它被添加到 activity 的左上角,无论我如何更改传递给 addView() 的 LayoutParams 属性。代码如下:
// Create a progress bar to display while the list loads
mProgressBar = new DualProgressView(getApplicationContext());
ViewGroup root = findViewById(android.R.id.content);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(500, 500, Gravity.CENTER);
root.addView(mProgressBar,params);
- 将进度条的高度和宽度设置为 wrap_content,或者说 xml 中的 40sp。
- 将属性 android:layout_gravity="center" 设置到您的 LinearLayout 中的 ProgressBar。
或以编程方式,试试这个:
ViewGroup layout = (ViewGroup) findViewById(android.R.id.content).getRootView();
LinearLayout.LayoutParams params = new
LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.MATCH_PARENT);
LinearLayout ll = new LinearLayout(thisActivity);
ll.setGravity(Gravity.CENTER);
ll.addView(progressBar);
layout.addView(ll,params);