使用xml布局使用多个textview创建一个段落

时间:2013-08-12 07:10:21

标签: android android-layout

这是我想要创建段落的布局文件。即下一句应该从前一个结束的点开始。但这不会发生,下一句话将在下一行中出现。实际上我采用xml方法,因为每个句子都与数据库相关联,必须由用户选择,所以没有选择使用\n

<RelativeLayout 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"
    tools:context=".MainActivity" >

    <ScrollView
        android:fillViewport="true"
        android:id="@+id/q_area"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" >

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content" >

            <TextView
                android:id="@+id/question_text"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_alignParentTop="true"
                android:padding="10dp"
                android:text="Q1 : Select the right sentence out of these ?" />

            <LinearLayout
                android:orientation="vertical"
                android:padding="10dp"
                android:layout_below="@id/question_text"
                android:layout_marginTop="25dp"
                android:id="@+id/comprehension"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content" >

                <TextView
                    android:id="@+id/sentence1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Reading comprehension is defined as the level of understanding of a text/message." />

                <TextView
                    android:id="@+id/sentence2"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="This understanding comes from the interaction between the words that are written and how they trigger knowledge outside ." />

                <TextView
                    android:id="@+id/sentence3"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Proficient reading depends on the ability to recognize words quickly and effortlessly." />

                <TextView
                    android:id="@+id/sentence4"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Many educators in the USA believe that students need to learn to analyze text." />

                <TextView
                    android:id="@+id/sentence5"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="But other US educators consider this reading approach to be completely backward." />
            </LinearLayout>

            <TextView
                android:id="@+id/explanation_text"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_below="@id/comprehension"
                android:layout_marginTop="25dp"
                android:padding="10dp"
                android:text="Explanation: Sentence you have selected is right?" />

            <View
                android:visibility="invisible"
                android:id="@+id/user_optionset4"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_below="@id/explanation_text"
                android:layout_centerHorizontal="true"
                android:layout_marginTop="50dp"
                />
        </RelativeLayout>
    </ScrollView>

    <LinearLayout
        android:background="@android:color/black"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true" >

        <Button
            android:layout_width="0dip"
            android:layout_height="wrap_content"
            android:layout_weight="0.3"
            android:gravity="center"
            android:padding="0dp"
            android:singleLine="true"
            android:text="P"
            android:textColor="@android:color/black" />

        <Button
            android:id="@+id/Take"
            android:layout_width="0dip"
            android:layout_height="wrap_content"
            android:layout_weight="1.4"
            android:gravity="center"
            android:padding="0dp"
            android:singleLine="true"
            android:text="Done"
            android:textColor="@android:color/white" />

        <Button
            android:layout_width="0dip"
            android:layout_height="wrap_content"
            android:layout_weight="0.3"
            android:gravity="center"
            android:padding="0dp"
            android:singleLine="true"
            android:text="N"
            android:textColor="@android:color/black" />
    </LinearLayout>

</RelativeLayout>

这是当前的输出:

enter image description here

预期输出,下一句应从黄色箭头的位置开始,如图所示:

enter image description here

5 个答案:

答案 0 :(得分:1)

实现这一目标的最简单方法可能是一个webview,你将一些css附加到每个句子是链接的位置,并且该链接调用一个Java方法来完成所需的工作。然后,由于所有链接都不是块,它们将在最后一行结束的地方继续,没有换行符(除非你明确声明一个)。

有关如何从js调用Java的一些信息可以在here

找到

答案 1 :(得分:0)

您可以在每个文字的末尾使用
。但是,您需要在resource.xml下的string.xml中定义字符串/ Message。以下是一个例子:

<string name="sample_string"><![CDATA[some test line 1 <br />some test line 2]]></string>

有关详细信息,请参阅以下链接: LINK

答案 2 :(得分:0)

这就是我在上面的通讯中的含义。您应该在strings.xml中创建一个String。使用
等在那里做正确的对齐。使用TextView中的字符串:

本隐私政策规定了xxx在您使用此应用程序时如何使用和保护您提供xxx的任何信息。\ n \ n

xxx致力于确保您的隐私受到保护。如果我们要求您提供使用此应用程序时可以识别的某些信息,那么您可以放心,它只会根据本隐私声明使用。\ n \ n

xxx可能会通过更新此页面不时更改此政策。您应该不时查看此页面,以确保您对任何更改感到满意。此政策自2013年6月1日起生效。\ n \ n

我们收集的内容 \ n \ n

我们可能会收集以下信息:\ n •姓名和职位名称\ n •联系信息,包括电子邮件地址\ n •人口统计信息,如邮政编码,偏好和兴趣等 •与客户调查和/或报价相关的其他信息\ n 我们如何处理我们收集的信息:\ n \ n

我们要求此信息了解您的需求并为您提供更好的服务,特别是出于以下原因:\ n •内部记录保存。\ n •我们可能会使用这些信息来改进我们的产品和服务。\ n •我们可能会使用您提供的电子邮件地址定期发送有关我们认为您可能感兴趣的新产品,特别优惠或其他信息的促销电子邮件。\ n
•我们可能会不时使用您的信息与您联系以进行市场调查。我们可能会通过电子邮件,电话,传真或邮件与您联系。\ n •我们可能会根据您的兴趣使用这些信息来定制应用程序。\ n \ n

安全 \ n \ n

我们致力于确保您的信息安全。为了防止未经授权的访问或披露,我们已采取适当的物理,电子和管理程序来保护和保护我们在线收集的信息。\ n \ n

我们如何使用cookies \ n \ n

Cookie是一个小文件,要求将权限放在本地存储上。一旦您同意,就会添加该文件,并且cookie可帮助您分析网络流量,或在您访问特定网站时通知您。 Cookie允许Web应用程序作为个人回复您。 Web应用程序可以通过收集和记住有关您的首选项的信息,根据您的需求,喜欢和不喜欢来定制其操作。\ n 我们使用流量日志cookie来识别正在使用的页面。这有助于我们分析有关网页流量的数据并改进我们的应用程序,以便根据客户需求进行定制。我们仅将此信息用于统计分析,然后从系统中删除数据。\ n 总的来说,Cookie可以帮助我们为您提供更好的应用程序,使我们能够监控您认为哪些页面有用而哪些页面没有用。除了您选择与我们分享的数据外,Cookie绝不会让我们访问您的计算机或任何有关您的信息。\ n 您可以选择接受或拒绝Cookie。大多数浏览器会自动接受cookie,但如果您愿意,通常可以修改浏览器设置以拒绝cookie。这可能会阻止您充分利用该应用程序。

</string>

答案 3 :(得分:0)

你可以在android中使用像flowlayout这样的东西。 我从来没有机会使用它,但在https://github.com/ApmeM/android-flowlayout

出现了FlowLayout的自定义实现

注意:您需要确定使用上述库的确切步骤和方法。也许有人可以帮助你解决这个问题

答案 4 :(得分:0)

最后,帮助我的是webview,我不想这样做。此外,我必须使用大量javascript来完成我的工作,因为布局非常动态,webview内显示的内容来自sqlite。