代码之家  ›  专栏  ›  技术社区  ›  Timbo

Java方法android:layout_gravity

  •  21
  • Timbo  · 技术社区  · 6 年前

    我想知道有没有办法打电话给你 android:layout_gravity 属性。我在Android文档中没有找到任何方法来做这件事。这是我要实现的布局图:

    http://www.anddev.org/resources/image/2234

    我知道如何通过XML实现,如下所示:

    <FrameLayout
        xlmns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">
    
          <Button
             android:layout_gravity="left|center_vertical"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:text="<" />
    
    
          <Button
             android:layout_gravity="right|center_vertical"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:text=">" />
    </FrameLayout>
    

    6 回复  |  直到 14 年前
        1
  •  30
  •   Nikolay Ivanov    11 年前

    this

    FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT,Gravity.LEFT | Gravity.CENTER_VERTICAL)
    

    然后 addView 新建 LayoutParams

        2
  •  2
  •   anon    15 年前
        3
  •  2
  •   Dimitry K    12 年前

         LinearLayout.LayoutParams(int width, int height, float weight)
    

    相对于

         FrameLayout.LayoutParams(int width, int height, int gravity)
    

    不生产 编译器错误实际上是错误的:

    lparams = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, Gravity.LEFT);
    
        4
  •  1
  •   all-ok    11 年前
    button.setBackgroundResource(R.drawable.sound_on);
            button.setText("On");
            button.setGravity(Gravity.CENTER_VERTICAL| Gravity.RIGHT);
            button.invalidate();
    
        5
  •  1
  •   Lekensteyn    11 年前

    改变现状 layout_gravity 现有视图的属性:

    Button button = (Button) findViewById(R.id.some_button);
    FrameLayout.LayoutParams params;
    params = (LayoutParams) button.getLayoutParams();
    
    params.gravity = Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL;
    button.setLayoutParams(params);
    

    FrameLayout 它有一个 gravity 属性对应于 重力布局 XML属性。 Documentation link .

        6
  •  -2
  •   Marvin    9 年前

    yourbutton.setGravity(Gravity.RIGHT);
    LayoutParams layout = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, Gravity.RIGHT);
    layout.gravity = Gravity.RIGHT;
    yourbutton.setLayoutParams(layout);
    
    
    yourlayout.setGravity(Gravity.RIGHT);
    yourlayout.addView(yourbutton);