我想将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.现在称它为时尚早?如果是,请问这个号码的正确位置是什么?
基本上我的目的是使布局的宽度只是屏幕尺寸宽度的一小部分,并且高度与它自己的宽度相同。
答案 0 :(得分:0)
考虑布局您的LinearLayout及其父级是另一个LinearLayout:
获取父级的宽度:
int parentWidth = ((LinearLayout) layout.getParent()).getWidth();
获取视图的宽度:
int viewWidth = ((LinearLayout) layout).getWidth();
设置
view.setHeight(viewWidth );
view.setWidth(parentWidth / 3);
答案 1 :(得分:0)