0

我有一个如下的LinearLayout。

<LinearLayout
        android:id="@+id/messageLayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="5dp"
        android:layout_marginLeft="5dp"
        android:layout_marginRight="5dp" 
        android:orientation="horizontal" />

在此布局中,动态 TextView 在运行时添加。但在运行时插入之前,我尝试手动添加 5 个 texview。这就是它的样子。

在此处输入图像描述

这些文本视图的布局是

<TextView
            android:id="@+id/textView5"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Small Text"
            android:textAppearance="?android:attr/textAppearanceSmall" />

我需要最后一个文本正常地正常跟随,而不是像上图那样分解。

我哪里错了?你能帮我解决这个问题吗?

编辑

我有一条消息要显示。例如,英格兰决赛中击败澳大利亚。这些粗体文本附有一些 ID,单击时会打开一个对话框。所以我打破了文本并将它们添加为不同的 TextView,这样我就可以轻松地附加一个 onClickListener。我需要消息来查看单个文本。希望它现在更有意义。

编辑 2

我使用 clickableSpan 作为解决方法。

SpannableString spannableString = new SpannableString(message);
ClickableSpan clickableSpan = new ClickableSpan() {
    @Override
    public void onClick(View widget) {
        Log.i(TAG_NAME, "clickable span...");
    }
};

spannableString.setSpan(clickableSpan, 0, 13, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
spannableString.setSpan(clickableSpan, 30, 40, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

我要做的就是向文本视图添加多个跨度。但是,看起来只有最后一个跨度有效。我哪里错了?

4

1 回答 1

0

将每个 textView 的权重设为 1

尝试这个:

<TextView
            android:id="@+id/textView5"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:text="Small Text"
            android:layout_weight="1" 
            android:textAppearance="?android:attr/textAppearanceSmall" />    

希望这有效

于 2013-11-04T11:42:41.393 回答