Android 带有 TextView 的线性布局
Android LinearyLayout with TextView
我正在尝试构建一个 LisView
项目,其中包含一个 LinearLayout
和两个 TextView
对象。第一个对象需要占屏幕宽度的 70%,另一个需要固定在 125dp 宽度。
我正在使用 layout_weight
属性告诉布局使第一个 TextView
适当缩放,但我无法使其正常工作。它在预览框中看起来不错(屏幕截图 1),但在模拟器中,左侧的 TextView
总是调整大小以适合其内容(屏幕截图 2)。
有人知道这是怎么回事吗?我是 Android 开发的新手,所以这让我很困惑。
谢谢!
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="?android:attr/listPreferredItemHeight"
android:padding="6dip">
<TextView
android:id="@+id/TitleTextView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:gravity="center_vertical"
android:text="Headling Rent (pa)"
android:textSize="16sp" />
<TextView
android:id="@+id/ValueTextView"
android:layout_below="@id/TitleTextView"
android:layout_width="125dp"
android:layout_height="fill_parent"
android:layout_weight="0"
android:gravity="center_vertical"
android:text="20,000"
android:textSize="16sp" />
</LinearLayout>
提供粗细时,宽度(或垂直布局的高度)必须为 0dp。
试试这个:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="?android:attr/listPreferredItemHeight"
android:weightSum="10"
android:padding="6dip">
<TextView
android:id="@+id/TitleTextView"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="7"
android:gravity="center_vertical"
android:text="Headling Rent (pa)"
android:textSize="16sp" />
<TextView
android:id="@+id/ValueTextView"
android:layout_below="@id/TitleTextView"
android:layout_width="125dp"
android:layout_height="fill_parent"
android:gravity="center_vertical"
android:text="20,000"
android:textSize="16sp" />
</LinearLayout>
好的,我已经解决了这个问题。有两件事是不正确的。首先,@user3249477 的回答是正确的,我需要在父 LinearLayout 标签中包含 weightSum,并且我还需要将宽度设置为 0dp 用于应该缩放的文本元素。
然而,这仍然没有真正解决我的问题。实际问题是父 ListView 将其宽度和高度设置为 "wrap_content" 而不是 "fill_parent"。我更新了这个,布局开始工作了。
我将接受@user3249477 的回答,因为他是正确的,但如果有人可以对这个答案投赞成票,我也将不胜感激,因为它确实允许上述修复工作。
谢谢!
我正在尝试构建一个 LisView
项目,其中包含一个 LinearLayout
和两个 TextView
对象。第一个对象需要占屏幕宽度的 70%,另一个需要固定在 125dp 宽度。
我正在使用 layout_weight
属性告诉布局使第一个 TextView
适当缩放,但我无法使其正常工作。它在预览框中看起来不错(屏幕截图 1),但在模拟器中,左侧的 TextView
总是调整大小以适合其内容(屏幕截图 2)。
有人知道这是怎么回事吗?我是 Android 开发的新手,所以这让我很困惑。
谢谢!
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="?android:attr/listPreferredItemHeight"
android:padding="6dip">
<TextView
android:id="@+id/TitleTextView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:gravity="center_vertical"
android:text="Headling Rent (pa)"
android:textSize="16sp" />
<TextView
android:id="@+id/ValueTextView"
android:layout_below="@id/TitleTextView"
android:layout_width="125dp"
android:layout_height="fill_parent"
android:layout_weight="0"
android:gravity="center_vertical"
android:text="20,000"
android:textSize="16sp" />
</LinearLayout>
提供粗细时,宽度(或垂直布局的高度)必须为 0dp。
试试这个:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="?android:attr/listPreferredItemHeight"
android:weightSum="10"
android:padding="6dip">
<TextView
android:id="@+id/TitleTextView"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="7"
android:gravity="center_vertical"
android:text="Headling Rent (pa)"
android:textSize="16sp" />
<TextView
android:id="@+id/ValueTextView"
android:layout_below="@id/TitleTextView"
android:layout_width="125dp"
android:layout_height="fill_parent"
android:gravity="center_vertical"
android:text="20,000"
android:textSize="16sp" />
</LinearLayout>
好的,我已经解决了这个问题。有两件事是不正确的。首先,@user3249477 的回答是正确的,我需要在父 LinearLayout 标签中包含 weightSum,并且我还需要将宽度设置为 0dp 用于应该缩放的文本元素。
然而,这仍然没有真正解决我的问题。实际问题是父 ListView 将其宽度和高度设置为 "wrap_content" 而不是 "fill_parent"。我更新了这个,布局开始工作了。
我将接受@user3249477 的回答,因为他是正确的,但如果有人可以对这个答案投赞成票,我也将不胜感激,因为它确实允许上述修复工作。
谢谢!