如何将EditText放入TextView

时间:2016-01-09 19:16:59

标签: android

我有一个句子,用户必须将他的数据放入句子(一个单词)。

我尝试使用带有TextView(句子开头)的LinearLayout,带有ems = 5的EditText(此处用户应该放置他的数据),然后使用TextView(句子末尾)(参见下面的代码)。但是在这个实现中,当我们使用长句并将其中的一部分移动到下一行时,它看起来并不合适。

在模拟器上看起来像:

|Blablabla ________ blablabla|    
|                   blabla.  |

它将句子的结尾放在第二个TextView下。但我需要第二行从新行的开头开始,如:

|Blablabla ________ blablabla|    
|blabla.                     |

我尝试使用Git-Hub的解决方案:flow-text但得到了这样的结果: enter image description here

我该如何解决这个问题?感谢收看这篇文章!

XML:

<LinearLayout
        android:orientation="horizontal"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="4dp"
        android:layout_marginTop="4dp">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:paddingTop="15dp"
            android:paddingRight="5dp"
            android:textSize="20sp"
            android:text="@string/firstPart_1"
            android:id="@+id/textView1"/>

        <EditText
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/name"
            android:textSize="20sp"
            android:inputType="textCapSentences"
            android:paddingTop="2dp"
            android:paddingBottom="6dp"
            android:ems="7"/>

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:paddingTop="15dp"
            android:paddingRight="5dp"
            android:textSize="20sp"
            android:text="@string/firstPart_2"
            android:id="@+id/textView2"/>

    </LinearLayout>

XML(流文本):

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context=".MainActivity">
<ScrollView
    android:layout_width="match_parent"
    android:layout_height="0dip"
    android:layout_weight="1" >

    <uk.co.deanwild.flowtextview.FlowTextView
        android:id="@+id/ftv"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">

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

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:paddingRight="5dp"
            android:textSize="20sp"
            android:text="блабла"
            android:id="@+id/textView1"/>

        <EditText
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/name"
            android:textSize="20sp"
            android:inputType="textCapSentences"
            android:ems="5"/>
        </LinearLayout>
    </uk.co.deanwild.flowtextview.FlowTextView>
</ScrollView>

2 个答案:

答案 0 :(得分:2)

我认为你应该对一条线使用线性布局(水平)。

     <LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
         android:text="fill in the blanks:" />
  <LinearLayout
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:orientation="horizontal">
      <TextView
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:text="Your name is: "/>
      <EditText
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
            android:ems="5"/>
  </LinearLayout>
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content" 
         android:text="Hello Brother, how are you"  />
</LinearLayout>

它可以随心所欲地工作。 :)

答案 1 :(得分:0)

由于您的文字格式如图所示,您可以考虑使用WebView

在这种情况下,您可以使用HTML排列元素,并使用CSS样式使用丰富的文本。

此外,您可以使用为Java端和JavaScript端之间的通信提供的WebView机制,以便从该文本框桥接到Java逻辑。 (Example