Android 文本视图中的固定列
Fixed Columns in an Android Textview
我正在尝试在 android 中构建一个列表视图,但有四列都是相等的。我正在使用 android:layout_width="0dp"
和 android:layout_weight="1"
,它们确实给我相等的列,直到其中一个字段的文本大于它的列分配宽度。
我一直在尝试找到一种解决方案来修复列的权重,以便额外的文本理想地移动到下一行。
这是我的列表视图布局:
<?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="match_parent"
android:weightSum="4">
<TextView
android:id="@+id/txvService"
android:layout_height="wrap_content"
android:layout_width="0dp"
android:layout_weight="1"
android:singleLine="false"/>
<TextView
android:id="@+id/txvScheduleDate"
android:layout_height="wrap_content"
android:layout_width="0dp"
android:layout_weight="1"
android:singleLine="false" />
<TextView
android:id="@+id/txvQty"
android:layout_height="wrap_content"
android:layout_width="0dp"
android:layout_weight="1"
android:singleLine="false" />
<TextView
android:id="@+id/txvBalance"
android:layout_height="wrap_content"
android:layout_width="0dp"
android:layout_weight="1"
android:singleLine="false" />
</LinearLayout>
如有任何想法,我们将不胜感激。
使用 LinearLayout
时,如果您有多个 child,则需要添加 orientation
属性。使用android:weightSum
按比例划分屏幕space。在你的情况下它将是 android:weightSum=4
如果你添加
android:weightSum="4"
android:orientation="horizontal"
到 LinearLayout 开始标签的 height 属性下,它会导致 LinearLayout 在分配给它的 space 水平方向上分配总重量为 4 的空间。从这里开始,每个元素的权重都可以为 1,这将导致每个元素占据 space 的 1/4。您还可以使用 weight/weightSum 属性在线性布局中放置具有不同宽度的元素,即:权重为 1 和 3 的两个元素将第一个元素排列为水平 space 的 1/4,第二个元素与 3/4。
我正在尝试在 android 中构建一个列表视图,但有四列都是相等的。我正在使用 android:layout_width="0dp"
和 android:layout_weight="1"
,它们确实给我相等的列,直到其中一个字段的文本大于它的列分配宽度。
我一直在尝试找到一种解决方案来修复列的权重,以便额外的文本理想地移动到下一行。
这是我的列表视图布局:
<?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="match_parent"
android:weightSum="4">
<TextView
android:id="@+id/txvService"
android:layout_height="wrap_content"
android:layout_width="0dp"
android:layout_weight="1"
android:singleLine="false"/>
<TextView
android:id="@+id/txvScheduleDate"
android:layout_height="wrap_content"
android:layout_width="0dp"
android:layout_weight="1"
android:singleLine="false" />
<TextView
android:id="@+id/txvQty"
android:layout_height="wrap_content"
android:layout_width="0dp"
android:layout_weight="1"
android:singleLine="false" />
<TextView
android:id="@+id/txvBalance"
android:layout_height="wrap_content"
android:layout_width="0dp"
android:layout_weight="1"
android:singleLine="false" />
</LinearLayout>
如有任何想法,我们将不胜感激。
使用 LinearLayout
时,如果您有多个 child,则需要添加 orientation
属性。使用android:weightSum
按比例划分屏幕space。在你的情况下它将是 android:weightSum=4
如果你添加
android:weightSum="4"
android:orientation="horizontal"
到 LinearLayout 开始标签的 height 属性下,它会导致 LinearLayout 在分配给它的 space 水平方向上分配总重量为 4 的空间。从这里开始,每个元素的权重都可以为 1,这将导致每个元素占据 space 的 1/4。您还可以使用 weight/weightSum 属性在线性布局中放置具有不同宽度的元素,即:权重为 1 和 3 的两个元素将第一个元素排列为水平 space 的 1/4,第二个元素与 3/4。