如何将子视图添加到 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);
  1. 将进度条的高度和宽度设置为 wrap_content,或者说 xml 中的 40sp。
  2. 将属性 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);