0

我在线性布局中有两个文本视图。在一个文本视图中,文本包含 21 个字符,而在另一个文本视图中,文本仅包含 12 个字符。第一个文本视图显示为两行,第二个文本视图显示为单行。我希望两个 textview 文本在单行或双行中都应该相同。

我使用了以下代码:

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="10dp" >

    <TextView
        android:id="@+id/tvtextview1"
        android:layout_width="fill_parent"
        android:layout_height="50dp"
        android:layout_margin="1dp"
        android:layout_weight="1"
        android:inputType="textMultiLine"
        android:scrollHorizontally="false"
        android:gravity="center"
        android:textColor="#FFFFFF"
        android:textSize="16sp" >
    </TextView>

    <TextView
        android:id="@+id/tvtextview2"
        android:layout_width="fill_parent"
        android:layout_height="50dp"
        android:layout_margin="1dp"
        android:layout_weight="1"
        android:scrollHorizontally="false"
        android:gravity="center"
        android:inputType="textMultiLine"
        android:textColor="#FFFFFF"
        android:textSize="16sp">
    </TextView>
</LinearLayout>

谁能帮我解决这个问题?提前致谢。

4

6 回答 6

3

如果您希望它们都是单行使用android:singleLine="true"

<TextView
    android:layout_margin="10dip"
    android:layout_width="0dip"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:ellipsize="marquee"
    android:marqueeRepeatLimit="marquee_forever"
    android:singleLine="true"
    android:text="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
    android:textSize="16sp" />

<TextView
    android:layout_margin="10dip"
    android:layout_width="0dip"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:ellipsize="marquee"
    android:marqueeRepeatLimit="marquee_forever"
    android:singleLine="true"
    android:text="xxxxxxxxxxxxxxxxxxxxxxxx"
    android:textSize="16sp" />

于 2012-12-06T14:37:10.810 回答
1

添加android:minLines="2"两个<TextView>标签。

于 2012-12-19T08:24:28.873 回答
0
android:singleLine="true"

此外,您的两个文本视图都具有完全相同的 ID。你可能想改变它。

于 2012-12-06T14:33:32.307 回答
0

您可以设置属性:

android:lines="2"
android:maxLines="2"

对于两个 TextView

于 2012-12-06T14:40:58.200 回答
0

试试这个示例代码来修复文本视图的高度

<TextView
    android:id="@+id/tvtextview1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_margin="1dp"
    android:gravity="center"
    android:minHeight="50dp"
    android:singleLine="true"
    android:scrollHorizontally="false"
    android:text="sdfsdfsdfsdfsdsdfsdfsdfsdfsdsdfsdfsdfsdfsdsdfsdfsdfsdfsdsdfsdfsdfsdfsdsdfsdfsdfsdfsdsdfsdfsdfsdfsd"
    android:textSize="16sp" >
</TextView>

<TextView
    android:id="@+id/tvtextview2"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_margin="1dp"
    android:gravity="center"
    android:lines="2"
    android:minHeight="50dp"
    android:inputType="textMultiLine"
    android:scrollHorizontally="false"
    android:text="sdfsdfsdfsdfsdsdfsdfsdfsdfsdsdfsdfsdfsdfsdsdfsdfsdfsdfsdsdfsdfsdfsdfsdsdfsdfsdfsdfsdsdfsdfsdfsdfsd"
    android:textSize="16sp" >
</TextView>
于 2012-12-06T14:43:29.217 回答
0

以编程方式检索屏幕宽度和 2 个文本的最大宽度。如果文本宽度大于屏幕宽度,则TextView在您的情况下将行数设置为 2。否则,到 1。

用于Paint计算文本的宽度。

    int screenWidth = this.getWindowManager().getDefaultDisplay().getWidth();

    TextView t1 = (TextView) this.findViewById(R.id.tvtextview1);
    TextView t2 = (TextView) this.findViewById(R.id.tvtextview2);

    Paint paint = new Paint();
    String longText = "123456789012345678901";

    paint.setTextSize(30);

    float textWidth = paint.measureText(longText);

    if((int)textWidth > screenWidth)
    {
        t1.setLines(2);
        t2.setLines(2);
    } else
        {
            t1.setLines(2);
            t2.setLines(2);
        }
于 2012-12-06T15:21:01.660 回答