下图显示了问题。由于某种原因,有三个点随机地似乎替换了TextView的部分或完整部分。下面显示的三个项目是RecycleView中的三个。
但是,填充视图中数据的代码如下:
@Override
public void onBindViewHolder(EntryViewHolder holder, int position) {
if (filteredEntries.size() <= position) return;
if (position < 0) return;
String entryName = filteredEntries.get(position);
Entry e = Aux.appData.getEntry(entryName);
holder.entryName.setText(entryName);
System.err.println("ENTRY: " + entryName);
holder.userName.setText(e.userName);
holder.iconText.setText(entryName.substring(0,1).toUpperCase());
holder.passWord.setText(e.passWord);
}
这在logcat中提供了以下输出:
01-03 16:59:26.436 21962-21962/org.ariela.colocrypter W/System.err: ENTRY: github
01-03 16:59:26.769 21962-21962/org.ariela.colocrypter W/System.err: ENTRY: GoG
01-03 16:59:27.216 21962-21962/org.ariela.colocrypter W/System.err: ENTRY: greenmangaming
如果有帮助,布局如下:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:paddingBottom="@dimen/padding_list_row"
android:paddingStart="?listPreferredItemPaddingLeft"
android:paddingEnd="?listPreferredItemPaddingRight"
android:background="@drawable/bg_list_row"
android:paddingTop="@dimen/padding_list_row">
<LinearLayout
android:id="@+id/message_container"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingStart="56dp"
android:paddingEnd="@dimen/padding_list_row"
android:focusable="true">
<TextView
android:id="@+id/tvEntryName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ellipsize="end"
android:lines="1"
android:textColor="@color/primaryTextColor"
android:textSize="@dimen/msg_text_primary"
android:textStyle="bold" />
<TextView
android:id="@+id/tvDescription"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ellipsize="end"
android:lines="1"
android:textColor="@color/secondaryLightColor"
android:textSize="@dimen/msg_text_secondary" />
</LinearLayout>
<RelativeLayout
android:id="@+id/icon_container"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<ImageView
android:id="@+id/ivCircle"
android:layout_width="@dimen/icon_width_height"
android:layout_height="@dimen/icon_width_height"
tools:ignore="ContentDescription"
android:src="@drawable/bg_circle" />
<TextView
android:id="@+id/tvLetter"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:textColor="@android:color/white"
android:textSize="@dimen/icon_text" />
</RelativeLayout>
<TextView
android:id="@+id/tvDaysSinceChange"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:textColor="@color/primaryTextColor"
android:textSize="@dimen/timestamp"
android:textStyle="bold" />
</RelativeLayout>
所以我的问题是,是什么导致了这个问题?
答案 0 :(得分:0)
所以这就是事情。我有三个textViews,其中两个有问题。布局的基本代码来自在线示例。所以我检查了每个TextView中的代码,发现有问题的代码有以下几行:
android:ellipsize="end"
抓住这条线,解决了问题。根据文件:
If set, causes words that are longer than the view is wide to be ellipsized instead of broken in the middle.
然而,这似乎是错误的,但它不应该像GoG这样的三个字母的单词有问题。