android中的TextView没有将文本包装到nextline

时间:2016-02-12 12:11:03

标签: android textview

您好我的应用程序中有一个注册表单,其中textview和edittext都是彼此相邻的,当我将大文本设置为textview时,它没有将文本包装到下一行。

以下是我的尝试。 enter image description here

<?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">

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Register"
    android:textSize="25dp"
    android:layout_gravity="center_horizontal"
    android:padding="8dp"
    android:textColor="#336633"/>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal">

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="I"
    android:textSize="20dp"
    android:padding="8dp"/>

<EditText
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:hint="FirstName"/>

<EditText
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:hint="LastName"/>

<TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="pledged that I will Ride"
        android:textSize="20dp"
        android:padding="8dp"/>

</LinearLayout>

4 个答案:

答案 0 :(得分:0)

试试这个,使用weightSum

<?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:orientation="vertical">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:padding="8dp"
        android:text="Register"
        android:textColor="#336633"
        android:textSize="25dp" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="horizontal"
        android:weightSum="5">

        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="0.30"
            android:padding="8dp"
            android:text="I"
            android:textSize="20dp" />

        <EditText
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1.33"
            android:hint="FirstName" />

        <EditText
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1.33"
            android:hint="LastName" />

        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="2"
            android:padding="8dp"
            android:gravity="center"
            android:maxLines="2"
            android:text="pledged that I will Ride"
            android:textSize="20dp" />

    </LinearLayout>
</LinearLayout>

答案 1 :(得分:0)

我认为您正在寻找能够将文本包裹在EditText中的解决方案。

https://github.com/deano2390/FlowTextView

答案 2 :(得分:0)

您无法按照自己的方式将TextView内的文字移动到下一行。如果其中的文本移动到下一行,它将从它所在的位置开始下一行(您在这里遇到的内容)。

最佳解决方案是将最后TextView放在LinearLayout之外。

移动

...
...
...
<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="pledged that I"
    android:textSize="20dp"
    android:padding="8dp"/>
</LinearLayout>
<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="will Ride"
    android:textSize="20dp"
    android:padding="8dp"/>
</LinearLayout>

在内部LinearLayout

之外

答案 3 :(得分:-1)

如果你减少文本的ems,那么它可以帮助你。

例如List<String> results = new ArrayList<>(); for (Iterator<String> iter = list.listIterator(); iter.hasNext(); ) { String a = iter.next(); if (...) { iter.remove(); } }

注意:大小必须以像素为单位。