我有一个项目的以下代码
<LinearLayout
android:id="@+id/linear"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/relative"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:orientation="horizontal">
<TextView
android:id="@+id/label_friend_count"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_weight="0.6"
android:gravity="end"
android:paddingTop="@dimen/padding_10dp"
android:text="@string/lbl_lead_count"
android:textColor="@color/color_grey_icon"
android:textSize="16sp" />
<TextView
android:id="@+id/txt_lead_count"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="@dimen/padding_10dp"
android:layout_weight="0.4"
android:gravity="start"
android:paddingTop="@dimen/padding_10dp"
android:textColor="@color/color_323232"
android:textSize="16sp"
android:layout_marginLeft="@dimen/padding_10dp" />
</LinearLayout>
此处TextViews
并未将宽度指定为0dp
,并指定值为0.6和0.4的layout_weight
属性。根据教程我已经完成了第1个{标识为TextView
的{1}}占据空间的60%,标识为label_friend_count
的第二TextView
应占据空间的40%。但是在这段代码中,第一个txt_lead_count
占用的空间更少,第二个TextView
占用更多的空间......任何人都可以告诉我这是怎么回事?是因为未将TextView
指定为layout_width
以及何时使用0dp
的浮点值?
这是我的布局快照
答案 0 :(得分:1)
将android:weightSum="1"
添加到您的LinearLayout并在0dp
中使用match_parent
宽度而不是TextView
来获得所需的结果
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:weightSum="1"
android:orientation="horizontal">
<TextView
android:id="@+id/label_friend_count"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_weight="0.6"
android:gravity="end"
android:paddingTop="@dimen/padding_10dp"
android:text="@string/lbl_lead_count"
android:textColor="@color/color_grey_icon"
android:textSize="16sp" />
<TextView
android:id="@+id/txt_lead_count"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="@dimen/padding_10dp"
android:layout_weight="0.4"
android:gravity="start"
android:paddingTop="@dimen/padding_10dp"
android:textColor="@color/color_323232"
android:textSize="16sp"
android:layout_marginLeft="@dimen/padding_10dp" />
</LinearLayout>
答案 1 :(得分:1)
android:layout_weight表示分配了LinearLayout中多少额外空间 到与这些LayoutParams相关联的视图。如果视图指定0 不应该被拉长。否则额外像素将按比例分配 在权重大于0的所有观点中。
设置 android:layout_width="0dp"
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:orientation="horizontal"
android:weightSum="1">
<TextView
android:id="@+id/label_friend_count"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_weight="0.6"
android:gravity="end"
android:paddingTop="@dimen/padding_10dp"
android:text="@string/lbl_lead_count"
android:textColor="@color/color_grey_icon"
android:textSize="16sp" />
<TextView
android:id="@+id/txt_lead_count"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="@dimen/padding_10dp"
android:layout_weight="0.4"
android:gravity="start"
android:paddingTop="@dimen/padding_10dp"
android:textColor="@color/color_323232"
android:textSize="16sp"
android:layout_marginLeft="@dimen/padding_10dp" />
答案 2 :(得分:0)
您可以查看此内容。 您可以将layout_width用作wrap_content或0dp。 布局的默认权重为1。
<LinearLayout
android:id="@+id/linear"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/relative"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:orientation="horizontal">
<TextView
android:id="@+id/label_friend_count"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_weight="0.6"
android:gravity="end"
android:paddingTop="@dimen/padding_10dp"
android:text="@string/lbl_lead_count"
android:textColor="@color/color_grey_icon"
android:textSize="16sp" />
<TextView
android:id="@+id/txt_lead_count"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="@dimen/padding_10dp"
android:layout_weight="0.4"
android:gravity="start"
android:paddingTop="@dimen/padding_10dp"
android:textColor="@color/color_323232"
android:textSize="16sp"
android:layout_marginLeft="@dimen/padding_10dp" />
</LinearLayout>
</LinearLayout>