正确组合TextViews

时间:2016-03-18 09:24:25

标签: android xml

我想实现以下目标:

enter image description here

这就是我现在所拥有的:

enter image description here

这是我的代码:

<LinearLayout
    android:id="@+id/detail"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent">
        <TextView
            android:id="@+id/number"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textSize="34sp" />
        <TextView
            android:id="@+id/word"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textSize="34sp" />
        <TextView
            android:id="@+id/synonyms"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="17sp" />
    </LinearLayout>
    <ImageView
        android:id="@+id/line"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:src="@drawable/Line" />
    <TextView
        android:id="@+id/explanation"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textSize="20sp" />
</LinearLayout>

如您所见,数字,单词和同义词是单独的TextViews。

有谁能告诉我我做错了什么?我一直在用宽度和高度(match_parent,wrap_content,fill_parent,......)进行电镀,但我似乎无法让它工作。

提前致谢。

3 个答案:

答案 0 :(得分:0)

以下是您的需求(不完全是xml)的xml支出。 您需要在xml中进行必要的更改。 我为蓝线上方的元素制作了布局
我订购了相应的数字。< / p>

Base将是水平方向的线性布局(width = match_parent)

(1)TextView for Number
(2)以下(2.1,2.2,2.3)的相对布局

2.1)TextView(@ + id / txtWord),顶部对齐的wrap_content
2.2)下面的TextView(@txtWord)用于Syn3,它将是(@ + id / txtSyn3)
2.3)用于Syn4的TextView(layout_toRightOf @ txtSyn3)

3)TextView for Synonym1
4)用于Syn2的TextView

答案 1 :(得分:0)

这是我实现布局的解决方案 将您的wordsynonyms置于同一TextView

 <LinearLayout
    android:orientation="horizontal"
    android:layout_width="wrap_content"
    android:layout_height="fill_parent">
    <TextView
        android:id="@+id/number"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textSize="34sp" />
    <TextView
        android:id="@+id/wordandSynonyms"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textSize="17sp" />
</LinearLayout>

然后在您的Java代码中

wordandSynonyms.setText(Html.fromHtml("<big><font color=\"#0000ff\">" + "World" + "</font></big>" + "<font color=\"#ff0000\">" + "-synonyms1 synonyms2"+ "</font>"));

你可以在这里看到http://daniel-codes.blogspot.com/2011/04/html-in-textviews.html 了解哪个html tag支持TextView。 希望这个帮助

答案 2 :(得分:0)

我通过将单词和同义词放在同一TextView中来修复它。接下来,我创建了一个CustomTypefaceSpan并将其与ISpannable一起使用来编辑字体,大小和样式。