Java 检查是否从ListView getView中省略自定义EllipsizingTextView

Java 检查是否从ListView getView中省略自定义EllipsizingTextView,java,android,android-listview,textview,ellipsis,Java,Android,Android Listview,Textview,Ellipsis,我想创建一个可扩展的文本视图,它显示在列表视图中。在我的列表视图适配器的获取视图方法中,我需要检查文本视图是否被省略以显示“展开”按钮 我正在使用旧的Android版本,因为有一个 EllipsizingTextView提供了一个名为isEllipsized的方法。当我在EllipsizingTextView的getView方法中调用此方法时,我总是得到false作为结果。我发现,isEllipsized方法只适用于已经绘制的视图 因此,我尝试使用TextView.post(Runnable-R

我想创建一个可扩展的文本视图,它显示在
列表视图中。在我的
列表视图
适配器
获取视图
方法中,我需要检查文本视图是否被省略以显示“展开”按钮

我正在使用旧的Android版本,因为有一个

EllipsizingTextView提供了一个名为
isEllipsized
的方法。当我在EllipsizingTextView的
getView
方法中调用此方法时,我总是得到
false
作为结果。我发现,
isEllipsized
方法只适用于已经绘制的视图

因此,我尝试使用
TextView.post(Runnable-Runnable)
从一个单独的
Runnable
调用
isEllipsized
。这适用于第一次加载列表项后在EllipsizingTextView中显示的第一个项

但是,当我向下滚动
isEllipsized
时,总是返回false。然后再次向上滚动时,
isEllipsized
为每个列表项返回正确的布尔值

有人知道我做错了什么吗?谢谢你的提示

下面是我在单独的类中使用的getView方法:

private EllipsizingTextView textView;
private int position;

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    ViewHolder holder = null;

    if (convertView == null) {
        holder = new ViewHolder();
        convertView = inflater.inflate(R.layout.list_item, null, false); 
        holder.text = (EllipsizingTextView) convertView.findViewById(R.id.label);       
        convertView.setTag(holder);
    } else {
        holder = (ViewHolder) convertView.getTag();
    } 

    holder.text.setText(position + " " + this.text);

    this.textView = holder.text;
    this.position = position;

    Runnable r = new Runnable() {
        @Override
        public void run() {
            Log.d("tag", TestObject.this.position +
                    " isEllipsized " + TestObject.this.textView.isEllipsized());
        }
    };
    holder.text.post(r);

    return convertView;
}
和我的XML:

<com.example.listviewtest.EllipsizingTextView
  android:id="@+id/label"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:ellipsize="end"
  android:maxLines="5"
</com.example.listviewtest.EllipsizingTextView>
相关/重复: