我有一个句子,用户必须将他的数据放入句子(一个单词)。
我尝试使用带有TextView(句子开头)的LinearLayout,带有ems = 5的EditText(此处用户应该放置他的数据),然后使用TextView(句子末尾)(参见下面的代码)。但是在这个实现中,当我们使用长句并将其中的一部分移动到下一行时,它看起来并不合适。
在模拟器上看起来像:
|Blablabla ________ blablabla|
| blabla. |
它将句子的结尾放在第二个TextView下。但我需要第二行从新行的开头开始,如:
|Blablabla ________ blablabla|
|blabla. |
我尝试使用Git-Hub的解决方案:flow-text但得到了这样的结果:
我该如何解决这个问题?感谢收看这篇文章!
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>
答案 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)