为什么layout_height改成wrap_content后ListItem(一个LinearLayout)的高度这么高?
Why is height of ListItem (a LinearLayout) so tall when layout_height is changed to wrap_content?
我的 ListView 项目有一个非常简单的布局(线性),只有 3 个小部件水平放置:2 个 TextView 项目,然后是一个按钮。但是,即使所有 3 个中的 layout_height 都是 wrap_content,但似乎用于按钮的值会强制 ListItem 扩展得比需要的多得多。但是只需将 layout_height 的值更改为 25dp 即可消除此问题。
为什么 Button 的 wrap_content 有这个效果,如何停止?
请注意下面我的屏幕截图中的背景颜色,显示小部件尺寸。 only 两张图片的区别在于,在我的 XML(底部)按钮的 layout_height 已从 wrap_content 更改为 25dp .
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
>
<TextView
android:id="@+id/tvTotal"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:gravity="left"
android:layout_gravity="left"
android:text="0."
android:textSize="18sp"
android:maxLines="1"
android:layout_weight=".15"
android:background="@color/LightGreen"
/>
<TextView
android:id="@+id/tvName"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:gravity="left"
android:text=""
android:textSize="18sp"
android:maxLines="1"
android:layout_weight=".55"
android:background="@color/LightBlue"
/>
<Button
android:id="@+id/btnMyButton"
android:layout_width="0dp"
android:layout_height="25dp"
android:gravity="right"
android:layout_gravity="right"
android:textColor="@color/CornflowerBlue"
android:text="Questions"
android:textSize="16dp"
android:maxLines="1"
android:layout_weight=".3"
android:background="@color/black"
>
</Button>
</LinearLayout>
将 wrap_content 用于按钮的 layout_height:
Button 的硬编码 25dp layout_height:
额外的 space 是按钮的默认填充。
如果要删除它,请使用:
android:minHeight="0dp"
android:minWidth="0dp"
在您的代码中
<Button
android:id="@+id/btnMyButton"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:layout_weight=".3"
android:background="@color/black"
android:gravity="right"
android:maxLines="1"
android:minHeight="0dp"
android:minWidth="0dp"
android:text="Questions"
android:textColor="@color/CornflowerBlue"
android:textSize="16dp"></Button>
我的 ListView 项目有一个非常简单的布局(线性),只有 3 个小部件水平放置:2 个 TextView 项目,然后是一个按钮。但是,即使所有 3 个中的 layout_height 都是 wrap_content,但似乎用于按钮的值会强制 ListItem 扩展得比需要的多得多。但是只需将 layout_height 的值更改为 25dp 即可消除此问题。
为什么 Button 的 wrap_content 有这个效果,如何停止?
请注意下面我的屏幕截图中的背景颜色,显示小部件尺寸。 only 两张图片的区别在于,在我的 XML(底部)按钮的 layout_height 已从 wrap_content 更改为 25dp .
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
>
<TextView
android:id="@+id/tvTotal"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:gravity="left"
android:layout_gravity="left"
android:text="0."
android:textSize="18sp"
android:maxLines="1"
android:layout_weight=".15"
android:background="@color/LightGreen"
/>
<TextView
android:id="@+id/tvName"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:gravity="left"
android:text=""
android:textSize="18sp"
android:maxLines="1"
android:layout_weight=".55"
android:background="@color/LightBlue"
/>
<Button
android:id="@+id/btnMyButton"
android:layout_width="0dp"
android:layout_height="25dp"
android:gravity="right"
android:layout_gravity="right"
android:textColor="@color/CornflowerBlue"
android:text="Questions"
android:textSize="16dp"
android:maxLines="1"
android:layout_weight=".3"
android:background="@color/black"
>
</Button>
</LinearLayout>
将 wrap_content 用于按钮的 layout_height:
Button 的硬编码 25dp layout_height:
额外的 space 是按钮的默认填充。
如果要删除它,请使用:
android:minHeight="0dp"
android:minWidth="0dp"
在您的代码中
<Button
android:id="@+id/btnMyButton"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:layout_weight=".3"
android:background="@color/black"
android:gravity="right"
android:maxLines="1"
android:minHeight="0dp"
android:minWidth="0dp"
android:text="Questions"
android:textColor="@color/CornflowerBlue"
android:textSize="16dp"></Button>