0

我想将我的 LinearLayout(或视图)调整为相对于父级或自身的尺寸。例如,我希望宽度为父宽度的 1/3。或者,高度应该与它自己的宽度相同。我不想使用任何常量,以便它适用于所有设备。

添加代码:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    >

    <LinearLayout android:id="@+id/ll_board"
        android:gravity="center_horizontal"
        android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    </LinearLayout> 
        ...
</LinearLayout>

代码:

public class GMActivity extends Activity {
  public void onCreate(Bundle savedInstanceState) {
    LinearLayout board_layout = (LinearLayout)findViewById(R.id.ll_board);
    // I wanted to resize board_layout here ..
    // getParent().getWidth() returns 0
    Log.d("gm", "layout: " + ((LinearLayout) board_layout.getParent()).getWidth());
    // ..
  }
}

getWidth() 给出 0。现在调用这个还为时过早吗?如果是,那么正确的称呼是什么?

基本上我的目的是使布局的宽度成为屏幕尺寸宽度的一小部分,并且高度与它自己的宽度相同。

4

2 回答 2

0

考虑布局您的 LinearLayout 并且它的父级是另一个 LinearLayout:

获取父级的宽度:

int parentWidth = ((LinearLayout) layout.getParent()).getWidth();

获取视图的宽度:

int viewWidth = ((LinearLayout) layout).getWidth();

设置

view.setHeight(viewWidth );
view.setWidth(parentWidth / 3);
于 2012-06-23T09:49:28.513 回答
0

我在 Square Form 中的 LinearLayout 中找到了 height=width 解决方案(方形布局)

于 2012-06-24T12:20:21.683 回答