我想在TextView
项中动态创建多个ListView
。假设我使用LinearLayout
它将水平或垂直创建textview。我想要多个textview与wraping。我如何创建这样的请分享您的宝贵意见,
屏幕下方图片。
注意: 每个文本视图都有单击操作
迈克投了8票,拉拉投了9票,就像那个带有包装纸的文字一样。答案 0 :(得分:0)
有什么问题,在linearLayout中使用textview?但我想,你真正想要的是spannable字符串,在这种情况下你可以设置格式(颜色,字体大小,样式和你想要的,以及每个单词的onClick动作,你只需要一个文本视图。< / p>
答案 1 :(得分:0)
我有一个包含文本视图的自定义视图(merge xml)(原来它是一个更复杂的视图)。 我的自定义视图类
public class示例扩展LinearLayout {
受保护的上下文上下文;
受保护的TextView titleView;
public Example(Context context) {
super(context);
this.context = context;
LayoutInflater inflater = (LayoutInflater) `enter code here`context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
inflater.inflate(R.layout.bloghu_title_layout, this, true);
this.setOrientation(LinearLayout.VERTICAL);
titleView = (TextView) getChildAt(0);
}
public void setBlogTitle(String blogTitle, final String blogUrl, String author, final String authorUrl) {
SpannableStringBuilder spannableStringBuilder = new SpannableStringBuilder();
spannableStringBuilder.append(blogTitle.toUpperCase());
spannableStringBuilder.append(" / ");
spannableStringBuilder.setSpan(new RelativeSizeSpan(1.5f), 0, blogTitle.length() + 2, 0);
spannableStringBuilder.append(author);
spannableStringBuilder.setSpan(new RelativeSizeSpan(1.2f), spannableStringBuilder.length() - author.length(), spannableStringBuilder.length(), 0);
spannableStringBuilder.setSpan(new NonUnderlineClickableSpan() {
@Override
public void onClick(View widget) {
Log.d("span", blogUrl);
}
}, 0, blogTitle.length(), 0);
spannableStringBuilder.setSpan(new NonUnderlineClickableSpan() {
@Override
public void onClick(View widget) {
Toast.makeText(context, authorUrl, Toast.LENGTH_SHORT).show();
}
}, spannableStringBuilder.length() - author.length(), spannableStringBuilder.length(), 0);
spannableStringBuilder.setSpan(new ForegroundColorSpan(context.getResources().getColor(R.color.index_orange)), 0, blogTitle.length(), 0);
spannableStringBuilder.setSpan(new ForegroundColorSpan(context.getResources().getColor(R.color.black)),
spannableStringBuilder.length() - author.length(), spannableStringBuilder.length(), 0);
titleView.setMovementMethod(LinkMovementMethod.getInstance());
titleView.setText(spannableStringBuilder, BufferType.SPANNABLE);
}
}
NonUnderlineClickableSpan()是一个扩展的ClickAbleSpan(),它只是因为我不想强调可点击的文本,结束它有一个你必须覆盖的空onclick方法: 公共类NonUnderlineClickableSpan扩展了ClickableSpan {
@Override
public void updateDrawState(TextPaint ds) {
ds.setColor(ds.linkColor);
ds.setUnderlineText(false); // set to false to remove underline
}
@Override
public void onClick(View widget) {
// TODO Auto-generated method stub
}
正如你在Example类中看到的,你可以设置一个新的NonUnderlineClickableSpan,在它的'onClick()方法中你可以设置发生了什么,而不是你必须设置可点击跨度的第一个和最后一个字符,以及一个标志(这是最后一个参数,在本例中为0)。
Whit ForegroundSpan你可以设置字体颜色,你可以设置不同的文字大小的相对大小跨度,并且有很多跨度可以设置文本的样式并使其具有交互性,但它是android中未充分记录的部分。
我还没有找到关于这个主题的好教程,所以如果有人知道,请告诉我:)。