TextView在RelativeLayout中关闭屏幕

时间:2014-02-14 14:57:53

标签: android android-layout

这是布局:

<?xml version="1.0" encoding="utf-8"?>

<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:columnCount="2"
    android:rowCount="2"
    android:rowOrderPreserved="true"
    android:alignmentMode="alignMargins">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_row="0"
        android:layout_column="0"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:text="Test:" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_row="0"
        android:layout_column="1"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:text="too long line too long line too long line too long line" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:text="Test2:"
        android:paddingRight="10dp"
        android:layout_row="1"
        android:layout_column="0" />
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_row="1"
        android:layout_column="1"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:text="Test line" />
</GridLayout>

以下是发生的事情的截图:

TextView

如何阻止第二个TextView(屏幕截图中选择的那个)超越屏幕边界?

3 个答案:

答案 0 :(得分:7)

您可以通过为每个textview提供match_parent的宽度和适当的layout_weight来避免所有这些。以下代码将为您提供所需的确切内容。享受!

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="3"
            android:text="Test 1"/>

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="line too long line too long line too long line too long line too long "/>
        </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="3"
            android:text="Test 2"/>

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="line too long line too long line too long line too long line too long "/>
    </LinearLayout>

</LinearLayout>

答案 1 :(得分:5)

答案很简单。只需3行XML代码。 在textview中,放置以下行:

<TextView
  android:layout_width = "match_parent"
  android:layout_height = "wrap_content"
  android:width = "0dp"/>

答案 2 :(得分:1)

这是因为你的textView宽度是wrap_content。所以意味着如果你的文字太长,那么它将不在屏幕之外。更好的方法是将其设置为 match_parent

如果时间太长,可以设置 MaxLines