我在linearlayout中有两个textview。在一个textview中,文本包含21个字符,而在另一个textview中,文本只包含12个字符。第一个textview显示为两行,第二个textview显示为单行。我希望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>
任何人都可以帮我解决这个问题吗?提前谢谢。
答案 0 :(得分: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" />
答案 1 :(得分:1)
在android:minLines="2"
个标记中添加<TextView>
。
答案 2 :(得分:0)
android:singleLine="true"
此外,您的textviews也具有完全相同的ID。你可能想改变它。
答案 3 :(得分:0)
您可以设置属性:
android:lines="2"
android:maxLines="2"
两个TextViews
答案 4 :(得分: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>
答案 5 :(得分: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);
}