我的远程视图包含3行文本/图像,每行包含2个textview和1个imageview。
我的结构是: -
垂直线性布局 水平线性布局 水平线性布局 水平线性布局。
我使用的布局xml是: -
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="5dp"
android:paddingTop="5dp"
android:paddingBottom="10dp"
android:id="@+id/wevents"
android:gravity="center_vertical">
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical|left"
android:layout_gravity="center_vertical"
android:id="@+id/sub3">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="+10"
android:id="@+id/wdays3"
android:layout_weight="1"
android:textColor="#ffffff" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="Some Text"
android:id="@+id/wsubject3"
android:layout_weight="4"
android:textColor="#ffffff"
android:paddingLeft="5dp"
android:scrollHorizontally="true"
android:ellipsize="end"
android:maxLines="1"
android:singleLine="true"
android:layout_gravity="left" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/walarm3"
android:src="@drawable/bell_white"
android:layout_weight="1"
android:layout_gravity="center" />
</LinearLayout>
... (each of the other linearlayouts is exactly the same)
我有两个问题: -
所以:
答案 0 :(得分:1)
1和2的答案实际上应该是相同的;您需要在TextViews和ImageViews上将 layout_width 属性更改为0dp。 所以第一个TextView应该显示:
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="+10"
android:id="@+id/wdays3"
android:layout_weight="1"
android:textColor="#ffffff" />
然后对其他TextViews和ImageViews执行相同的操作。
问题是当你在水平LinearLayout中对这些视图使用 layout_weight 时,你会说每个视图的宽度应该通过参考你指定的权重来计算,但是当你说 layout_width =“wrap_content”,你说宽度应该根据视图内部的内容计算,即文本的长度或图像的大小。指定两种方法来计算宽度会产生一些奇怪的结果,但是如果你将宽度设置为0dp,那么它将直接转到你设置的权重。
这可能不言而喻,但无论如何我会说,如果你在垂直线性布局中使用权重,你需要将 layout_height 属性设置为0dp。 / p>