我试图通过这个例子来理解权重布局。
这绝对不是一门火箭科学。然而,这个例子使它......
- 重量总和决定了尺寸有多大,
- 然后根据LinearLayout中视图的layout_weight值来划分布局。
在此示例中,我有一个布局,权重为 5,然后将其分为两个视图:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@color/transactionRowBackground"
android:paddingBottom="5dp"
android:paddingTop="5dp" android:orientation="horizontal" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical" android:layout_weight="2" >
<TextView
android:id="@+id/title"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:clickable="true"
android:gravity="top"
android:padding="5dp"
android:text="Test Title"
android:textColor="@color/textColor"
android:textSize="@dimen/subHeadingTextSize"
android:textStyle="bold" />
<TextView
android:id="@+id/description"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:clickable="true"
android:gravity="top"
android:padding="5dp"
android:text="This is a test description"
android:textColor="@color/textColor"
android:textSize="@dimen/normalTextSize" />
</LinearLayout>
<ImageView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="3"
android:src="@drawable/ic_launcher"
android:layout_gravity="top"
android:contentDescription="" />
</LinearLayout>
我无法理解的是,我给 ImageViewer 的数字越大,它从父级获得的空间就越小。那么它实际上是如何计算 ImageView 的大小的。
您可以尝试使用上面的 xml。如果将 ImageView 的布局权重更改为 1 ,并将子线性布局更改为 4 (我认为这更有意义),那么将会发生相反的情况。
ImageView 将扩大,子线性布局将缩小。我认为数字越大,您获得的空间就越多。
因为在你最外面的布局上你有android:orientation="horizontal"
,我相信您想改变所占用的大小/空间ImageView
和内部LinearLayout
在水平方向。对于这种情况尝试使用
android:layout_width="0dp"
在您放置的布局上android:layout_weight
。如果您的外部布局方向是垂直的,我会使用android:layout_height="0dp"
为了使权重能够处理布局的宽度/高度。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@color/transactionRowBackground"
android:paddingBottom="5dp"
android:paddingTop="5dp" android:orientation="horizontal" >
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:orientation="vertical" android:layout_weight="2" >
<TextView
android:id="@+id/title"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:clickable="true"
android:gravity="top"
android:padding="5dp"
android:text="Test Title"
android:textColor="@color/textColor"
android:textSize="@dimen/subHeadingTextSize"
android:textStyle="bold" />
<TextView
android:id="@+id/description"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:clickable="true"
android:gravity="top"
android:padding="5dp"
android:text="This is a test description"
android:textColor="@color/textColor"
android:textSize="@dimen/normalTextSize" />
</LinearLayout>
<ImageView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="3"
android:src="@drawable/ic_launcher"
android:layout_gravity="top"
android:contentDescription="" />
</LinearLayout>
阅读 Android 文档可能会有所帮助:布局权重 http://developer.android.com/guide/topics/ui/layout/linear.html#Weight
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)