动态调整相对布局的大小

时间:2013-07-18 21:56:14

标签: android layout relativelayout onmeasure

我正在尝试制作看起来像这样的东西。

我可以让标题正常工作,右边的文字云看起来很像。 我是从片段中调用它。

但我正在努力让这两个专栏有用。

我试图像这样得到父母的宽度:

parentLayout = (RelativeLayout) view.findViewById(R.id.ParentLayout);
parentLayout.getMeasuredWidth() 

这将返回0,而parentLayout具有layout_width =“match_parent”

我似乎无法在这种类型的“视图”上找到教程/示例,或者我用于搜索的关键字可能是错误的。

任何输入都表示赞赏!! 在此先感谢!!

P.S。我也尝试使用onMeasure(),但得到错误“必须覆盖或实现超类型方法”

Page

1 个答案:

答案 0 :(得分:0)

线性布局真的可以很好地处理这种类型的布局。我会使用这样的安排:

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_height="fill_parent"
        android:background="@color/black"
        android:orientation="vertical"
        android:layout_width="fill_parent">
         <!-- your header stuff here

        -->
        <LinearLayout android:layout_height="wrap_content"
                  android:layout_width="wrap_content"
                  android:orientation="horizontal"
                  >

            <LinearLayout android:id="left picture pane"
                  android:orientation="vertical"
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
            >
                <ImageView android:layout_width="100dp"
                           android:background="@drawable/logo"
                           android:layout_height="50dp"
                           android:layout_margin="10dp"
                           />
                <ImageView android:layout_width="100dp"
                           android:background="@drawable/logo"
                           android:layout_height="50dp"
                           android:layout_margin="10dp"
                        />
                <ImageView android:layout_width="100dp"
                           android:background="@drawable/logo"
                           android:layout_height="50dp"
                           android:layout_margin="10dp"
                        />

            </LinearLayout>
            <LinearLayout
                android:orientation="vertical"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" >
                    <TextView android:layout_width="wrap_content"
                              android:layout_height="wrap_content"
                              android:text="Some Text"
                              android:textColor="#FFFFFF"
                              android:layout_marginTop="20dp"
                              android:layout_marginLeft="10dp"
                              />
                <TextView android:layout_width="wrap_content"
                          android:layout_height="wrap_content"
                          android:text="Some Text"
                          android:textColor="#80ffff"
                          android:layout_marginTop="2dp"
                          android:layout_marginLeft="15dp"
                        />
                                <!-- your fancy lettering in here
                                     or you could put them in a relative layout
                                     instead of this linear one -->
            </LinearLayout>
        </LinearLayout>
</LinearLayout>