我有下一个布局:
<LinearLayout
android:id="@+id/work_item_layout"
android:orientation="horizontal"
android:layout_width="match_parent"
android:gravity="left"
android:background="@android:drawable/list_selector_background"
android:layout_height="wrap_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="6sp"
android:id="@+id/work_item_update"/>
<TextView
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:textSize="16sp"
android:maxLines="2"
android:text="LALALALLALLALALALALALALLA...."
android:id="@+id/work_item_title">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:maxLines="1"
android:textSize="13sp"
android:id="@+id/work_item_rate_and_size"/>
</LinearLayout>
问题是中心TextView填充所有可用空间,但我希望它是最小可能的空间。如果我使中心TextView&#34; warp_content&#34;的宽度如果中心足够大以填满所有空间,那么最后一个将被删除。 我应该如何使中心元素宽度像warp_content,但如果中心文本超过1行(我希望最后一个TextView文本将在中央TextView文本旁边),则不能删除最后一个
答案 0 :(得分:0)
尝试指定权重,以便您可以指定希望视图占据的空间分数
答案 1 :(得分:0)
我认为你正在使用权重完全倒退。尝试为顶部和底部android:weight="1"
指定TextView
,并为中间指定仅指定“wrap_content”。
或者,您可以为每个外部视图指定较大的权重(4或5),为内部视图指定较小的权重(1)。
重量优先。如果为视图指定权重,则LinearLayout
将使用它(优先于其他大小规范)来调整视图大小。如果同时指定权重和其他大小,则LinearLayout
大小计算过于昂贵。这就是为什么你会在IDE中看到一个建议,告诉你如果你指定一个权重,就明确地将大小设置为“0”。
指定非零权重可以有用。如果有空余空间,则权重优先,LinearLayout
大小计算算法不会使视图小于其指定大小。这意味着您可以说,或多或少“将此视图设为屏幕的1/3,或12像素,以较大者为准”