以编程方式创建LinearLayout中的元素

Hub*_*cki 3 android position center android-layout android-linearlayout

我正在运行时创建一个LinearLayout,我在其中添加了两个元素:textview和一个微调器.我想将它们水平居中在LinearLayout中,但无法弄清楚如何做到这一点.下面是我用来创建视图的代码:

LinearLayout leftSideAttributLayout = new LinearLayout(this);

leftSideAttributLayout.setOrientation(LinearLayout.HORIZONTAL);

LinearLayout.LayoutParams attributLayoutParams = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
leftSideAttributLayout.setLayoutParams(attributLayoutParams);

LinearLayout.LayoutParams leftLabelParams = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
leftLabelParams.gravity = Gravity.CENTER;
leftAttributLabel.setLayoutParams(leftLabelParams);         
TextView leftAttributLabel = new TextView(this);

leftAttributLabel.setText(attribut.getNom());
leftAttributLabel.setTextColor(Color.WHITE);
Tools.applyFont(getApplicationContext(), leftAttributLabel, "gothic_0.TTF");

LinearLayout.LayoutParams spinnerParams = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);  
spinnerParams.gravity = Gravity.CENTER_HORIZONTAL;
spinnerParams.setMargins(10, 0, 0, 0);

Spinner leftAttributValues = new Spinner(this);
leftAttributValues.setLayoutParams(spinnerParams);
leftAttributValues.setAdapter(adapter);
leftAttributValues.setBackgroundResource(R.drawable.lenti_attributspinner);
leftAttributValues.setTag(attribut);
Run Code Online (Sandbox Code Playgroud)

如果有人可以帮助我,那会很棒!谢谢 :)

Pav*_*van 13

因为您必须将重力设置为线性布局,所以只需在设置线性布局参数后放置此线

leftSideAttributLayout.setGravity(Gravity.CENTER);
Run Code Online (Sandbox Code Playgroud)

这是您的代码中的示例

 LinearLayout leftSideAttributLayout = new LinearLayout(this);

            leftSideAttributLayout.setOrientation(LinearLayout.HORIZONTAL);

            LinearLayout.LayoutParams attributLayoutParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
            attributLayoutParams.gravity = Gravity.CENTER;


            leftSideAttributLayout.setLayoutParams(attributLayoutParams);
            leftSideAttributLayout.setGravity(Gravity.CENTER);

            LinearLayout.LayoutParams leftLabelParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
            //leftLabelParams.gravity = Gravity.CENTER;

            TextView leftAttributLabel = new TextView(this);

            leftAttributLabel.setText("sample");
            leftAttributLabel.setTextSize(25);
            leftAttributLabel.setLayoutParams(leftLabelParams);


            LinearLayout.LayoutParams spinnerParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,LinearLayout.LayoutParams.WRAP_CONTENT);
           // spinnerParams.gravity = Gravity.CENTER;
            spinnerParams.setMargins(10, 0, 0, 0);

            Spinner leftAttributValues = new Spinner(this);
            leftAttributValues.setLayoutParams(spinnerParams);

            leftSideAttributLayout.addView(leftAttributLabel);
            leftSideAttributLayout.addView(leftAttributValues);

            mainview.addView(leftSideAttributLayout);
Run Code Online (Sandbox Code Playgroud)

希望能帮助到你