簡體   English   中英

如何在android中創建線性布局和中心按鈕?

[英]How to create linear layout and center buttons in it in android?

在android中如何使用java插入線性布局,並在水平布局中有三個按鈕,並使按鈕居中。

所以基本上我想要一個具有三列和一行的水平線性布局,每列具有相同的寬度,並插入在每個布局單元格中垂直和水平居中的圖像按鈕。

    LinearLayout layout = new LinearLayout(this);
    layout.setOrientation(LinearLayout.HORIZONTAL);
    LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT);
    layout.setLayoutParams(params);

有誰知道如何做到這一點?

謝謝。

您可以通過將布局的重力設置為水平居中來將所有子視圖居中放置在布局中:

LayoutParams layout_params = new LinearLayout.LayoutParams(MATCH_PARENT, MATCH_PARENT, Gravity.CENTER_HORIZONTAL);

然后使用新構造的LayoutParams進行addView

您可以將weightsum = 3用於linearlayout,並將layout_weight = 1用於每個按鈕。 查看詳細代碼。 我希望這將有所幫助。 祝好運 :)

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    LinearLayout layout = new LinearLayout(this);
    layout.setOrientation(LinearLayout.HORIZONTAL);
    LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
            LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
    layout.setLayoutParams(params);

    layout.setWeightSum(3);

    for (int i = 0; i < 3; i++) {
        LinearLayout.LayoutParams btnParams = new LinearLayout.LayoutParams(
                LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
        btnParams.weight = 1.0f;

        Button btn = new Button(this);
        btn.setText("Btn");
        btn.setLayoutParams(btnParams);

        layout.addView(btn);
    }

    setContentView(layout);
    }
}

或者這個代碼更好但更復雜^^

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    LinearLayout mainLayout = new LinearLayout(this);
    mainLayout.setOrientation(LinearLayout.HORIZONTAL);
    LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
            LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
    mainLayout.setLayoutParams(params);

    mainLayout.setWeightSum(3);

    for (int i = 0; i < 3; i++) {
        LinearLayout.LayoutParams btnParams = new LinearLayout.LayoutParams(
                LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);

        Button btn = new Button(this);
        btn.setText("Btn");
        btn.setLayoutParams(btnParams);

        LinearLayout childLayout = new LinearLayout(this);
        LinearLayout.LayoutParams childParam = new LinearLayout.LayoutParams(
                LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
        childParam.weight = 1.0f;

        childLayout.setLayoutParams(childParam);
        childLayout.setGravity(Gravity.CENTER);
        childLayout.addView(btn);

        mainLayout.addView(childLayout);
    }

    setContentView(mainLayout);
}
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM