如何将子视图添加到ViewGroup的中心

时间:2017-12-13 10:14:45

标签: android view viewgroup

我在this之后创建了一个自定义循环ProgressBar。现在我想将此进度条添加到我的布局中心。问题是它被添加到活动的左上角,无论我如何更改传递给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 个答案:

答案 0 :(得分:1)

  1. 将进度条的高度和宽度设置为wrap_content,或者说xml中的40sp。
  2. 将属性 android:layout_gravity =" center" 设置为LinearLayout中的ProgressBar。
  3. 或以编程方式,试试这个:

    
    
    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);