问题是红色文本是动态的我不知道运行时的长度。
目前我有一个LinearLayout
,其中我有两个TextViews
一个用于红色文本,另一个用于可点击链接。我已设法使用LinearLayout android:orientation=vertical
在红色文本下方显示链接。
如果我将其设置为android:orientation=horizontal
,则链接会转到最右边,而不是红色文本的内容旁边。
我当前的XML:
<LinearLayout
android:paddingLeft="16dp"
android:paddingRight="@dimen/card_container_padding"
android:paddingTop="@dimen/card_container_padding"
android:paddingBottom="@dimen/card_container_padding"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/cms_message_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@color/black"
android:textSize="@dimen/body_text_size"
android:textStyle="bold"
android:textAlignment="center"
android:layout_weight="0"
android:text=""/>
<TextView
android:id="@+id/cms_message_modal_link"
android:layout_marginLeft="@dimen/account_home_line_margin_top"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@color/lightBlue"
android:layout_weight="1"
android:textAlignment="textEnd"
android:layout_gravity="end"
android:textStyle="bold"
android:textSize="@dimen/body_text_size"
android:text="More Info"/>
</LinearLayout>
我应该使用不同的布局还是有可以帮助我的属性?
答案 0 :(得分:1)
仅使用1个TextView和setText使用Spannable
https://developer.android.com/reference/android/text/Spannable.html
User::select('users.id', 'users.full_name')
->join('roles as r', 'r.id', '=', 'users.role_id')
->where('users.id', $user_id)
->get();
答案 1 :(得分:1)
虽然Xan的答案在显示方面没有错,但它不允许仅点击下划线部分。我建议使用:
TextView textView = (TextView) findViewById(R.id.cms_message_content);
SpannableString ss = new SpannableString("Here is some non linked text, but this is linked");
ClickableSpan clickableSpan = new ClickableSpan() {
@Override
public void onClick(View view) {
Toast.makeText(MainActivity.this, "Hey you clicked me", Toast.LENGTH_SHORT).show();
}
};
int indexOfComma = ss.toString().indexOf(","); /* just for this case, im coloring after the comma */
ss.setSpan(clickableSpan, indexOfComma + 1, ss.toString().length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
textView.setText(ss);
textView.setMovementMethod(LinkMovementMethod.getInstance());
textView.setLinkTextColor(Color.BLUE);
祝你好运,快乐的编码!