我试图在android中的xml文件中构建此视图,以表示recyclelerview中的列表项
但是我得到了这个观点
这是我的代码
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/white"
android:orientation="horizontal"
android:padding="5dp">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:orientation="vertical">
<ImageView
android:id="@+id/image_news"
android:layout_width="100dp"
android:layout_height="100dp"
app:srcCompat="@drawable/ic_perm_identity_grey_400_48dp" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="left"
android:orientation="horizontal"
android:padding="10dp">
<TextView
android:id="@+id/txt_news_name"
android:layout_width="135dp"
android:layout_height="wrap_content"
android:layout_marginRight="5dp"
android:text="Mohamed Alaa"
android:textColor="@android:color/black"
android:textSize="18sp" />
<TextView
android:id="@+id/txt_news_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="added a new photo to the album"
android:textSize="16sp" />
</LinearLayout>
</LinearLayout>
如何改进我的代码以获得所需结果?
我希望只有在没有编写java代码的情况下才能在xml文件中应用任何答案
答案 0 :(得分:0)
这两个TextView只能是一个,并使用像这样的字符串资源:
<string name="added_photo_message"><b>%1$s</b> added a new photo to the album <b>%2$s</b>.</string>
使用Html.fromHtml或使用spannable。
在你的RecyclerView适配器中你可以使用这个fromHtml方法(以避免在Android N上添加新参数时弃用的警告:
@SuppressWarnings("deprecation")
public static Spanned fromHtml(String source) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
return Html.fromHtml(source, Html.FROM_HTML_MODE_LEGACY);
} else {
return Html.fromHtml(source);
}
}
并在同一个Recyclerview适配器中调用它,如:
yourTextView.setText(fromHtml(getString(R.string.added_photo_message), userName, albumName)));
答案 1 :(得分:0)
做这样的事情:
TextView tv = (TextView) findViewById(R.id.yourTextView);
String name = "Mohammed Alaa";
String album = "Instagram Photos";
SpannableStringBuilder sb = new SpannableStringBuilder();
sb.append(name,new StyleSpan(android.graphics.Typeface.BOLD),Spannable.SPAN_INCLUSIVE_INCLUSIVE);
sb.append(" added a new photo to the album ");
sb.append(album,new StyleSpan(android.graphics.Typeface.BOLD),Spannable.SPAN_INCLUSIVE_INCLUSIVE);
sb.append(".");
tv.setText(sb);