随机点替换RecycleView中项目的TextViews中的文本

时间:2018-01-03 20:04:08

标签: android android-recyclerview

下图显示了问题。由于某种原因,有三个点随机地似乎替换了TextView的部分或完整部分。下面显示的三个项目是RecycleView中的三个。

enter image description here

但是,填充视图中数据的代码如下:

@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>

所以我的问题是,是什么导致了这个问题?

1 个答案:

答案 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这样的三个字母的单词有问题。