【问题标题】:Android : Set gravity of a LinearLayout programmaticallyAndroid:以编程方式设置 LinearLayout 的重力
【发布时间】:2016-09-14 07:58:15
【问题描述】:

我是 android 编程新手。

我只是发现 xml 并不是设置布局的唯一方法。所以,我试图理解以编程方式设置的布局。我一直在尝试改变按钮的位置。如何设置布局重力,以便按钮位于预期的轴上,比如说bottomcenter

顺便说一句,iciclesavedInstanceState 是一样的吗?

这是我偶然发现的编码。 你能告诉我设置重力的正确方法吗?

 @Override
public void onCreate(Bundle icicle) {
    super.onCreate(icicle);

    LinearLayout one = new LinearLayout(this);
    myButton1 = new Button1(this);
    one.addView(myButton1,
        new LinearLayout.LayoutParams(
            ViewGroup.LayoutParams.WRAP_CONTENT,
            ViewGroup.LayoutParams.WRAP_CONTENT,
            0));
    myButton2 = new Button2(this);
    one.addView(mButton2,
        new LinearLayout.LayoutParams(
            ViewGroup.LayoutParams.WRAP_CONTENT,
            ViewGroup.LayoutParams.WRAP_CONTENT,
            0));
    setContentView(one);

【问题讨论】:

    标签: android android-layout android-studio gravity layoutparams


    【解决方案1】:

    我想,你正在寻找

    LinearLayout one = new LinearLayout(this);
    
            one.setGravity(Gravity.BOTTOM | Gravity.CENTER);  //to show LinearLayout gravity
    
            Button myButton1 = new Button(this);
            one.addView(myButton1,
                        new LinearLayout.LayoutParams(
                            ViewGroup.LayoutParams.WRAP_CONTENT,
                            ViewGroup.LayoutParams.WRAP_CONTENT,
                            0));
            myButton1.setText("First");
            myButton1.setGravity(Gravity.CENTER);   //to show text gravity in button
    
            Button myButton2 = new Button(this);
            one.addView(myButton2,
                        new LinearLayout.LayoutParams(
                            ViewGroup.LayoutParams.WRAP_CONTENT,
                            ViewGroup.LayoutParams.WRAP_CONTENT,
                            0));
            myButton2.setText("Second");
            myButton2.setGravity(Gravity.CENTER);   //to show text gravity
            setContentView(one);
    

    icicle有时用作参数的名称。它只是一个 onCreate 形式参数之一的占位符采用一个 Bundle 参数。怎么称呼它取决于你。

    LinearLayouthttps://stackoverflow.com/a/19065951/2826147的一些属性

    【讨论】:

    • 如果我能进一步帮助你,请告诉我@Mint
    • 谢谢。这行得通。按钮完美地位于底部。 savedInstanceState 也是形式参数之一呢?
    • "icicle" 有时用作参数的名称,因为 onSaveInstanceState() 曾经被称为 onFreeze()。
    • 你的问题解决了吗?@Mint
    【解决方案2】:
    yourLinearLayout.setGravity(Gravity.BOTTOM);
    

    就这么简单

    【讨论】:

    • 这真的很简单。谢谢@Syn3sthete
    【解决方案3】:

    你需要使用setGravity()

    例如button.setGravity(Gravity.CENTER | Gravity.BOTTOM);

    【讨论】:

    • 谢谢@HaykAvanesyan
    猜你喜欢
    • 1970-01-01
    • 2015-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多