首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >android - TextView不显示在RecyclerView中

android - TextView不显示在RecyclerView中
EN

Stack Overflow用户
提问于 2016-05-21 15:03:58
回答 1查看 2K关注 0票数 0

我有一个应用程序,它获取一些数据( youtube视频的标题)并显示在TextViews中,在RecyclerView中的条目中。但是有些TextViews没有显示,但是数据被正确加载。

在我的手机上,不只是显示列表中的几个元素,在我以前的桌面上--几乎所有的元素都没有显示。

我做了一些实验,并了解到字符串比没有显示的值长。

列表项目

代码语言:javascript
复制
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             xmlns:app="http://schemas.android.com/apk/res-auto"
             android:layout_margin="1dp"
             android:descendantFocusability="blocksDescendants"
             android:orientation="vertical"
             android:padding="3dp"
    android:background="@color/colorAccent">

    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        <ImageView
            android:id="@+id/galley_photo_item_image"
            android:layout_width="120dp"
            android:layout_height="120dp"/>
        <CheckBox
            android:id="@+id/galley_photo_item_checkbox"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:buttonTint="@color/colorPrimary"
            android:visibility="invisible"/>
    </FrameLayout>
    <TextView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:text="WTF"
        android:minLines="3"
        android:maxLines="3"
        android:background="@color/colorPrimary"
        android:id="@+id/image_name_text"/>
</LinearLayout>

我的适配器

代码语言:javascript
复制
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int i)
{
    View convertView = inflater.inflate(R.layout.gallery_photo_item,parent,false);
    ViewHolder view_holder = new ViewHolder(convertView);
    //view_holder.Position = i;

    //Event handling
    view_holder.CheckBox.setOnClickListener(this);
    view_holder.View.setOnClickListener(this);


    convertView.setTag(view_holder);
    //checkBox.setTag(position);

    return view_holder;
}

@Override
public void onBindViewHolder(ViewHolder view_holder, int position)
{
    //Toggle checkbox on DELETE MODE
    if(is_checking) {
        view_holder.CheckBox.setVisibility(View.VISIBLE);
        view_holder.CheckBox.setChecked(checked[position]);
    }
    else
        view_holder.CheckBox.setVisibility(View.INVISIBLE);

    //view.setTag(position);
    view_holder.CheckBox.setTag(position);
    view_holder.Position=position;

    //Display image
    //String uri = Uri.fromFile(thumbs[position]).toString();
    String uri = thumbs_fnames[position];
    Glide.with(context)
            .load(uri)
            .centerCrop()
            .into(view_holder.ImageView);

    //Добавляем подписи (если есть)
    if((thumbs_descriptions!=null))//&&(thumbs_descriptions.length==thumbs_fnames.length))
    {
        String text = thumbs_descriptions[position];
        Log.d("ImageListAdapter",position +": "+text+"|");
        view_holder.Description.setText(text);
    }
    else
        Log.d("ImageListAdapter",position + ": nothing");


    if(position== markred_id)
        view_holder.View.setBackgroundResource(R.color.colorPrimary);
    else
        view_holder.View.setBackgroundResource(R.color.transparent);

}

最后一件奇怪的事。当我手动设置文本时:

text = "Some long-long text bla-bla-bla ... ... ... ...;

它工作正常。

什么奇怪的问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-23 23:20:50

我做到了。问题是FrameLayout具有宽度和高度,mathc_parent安装wrap_content

正确的XML

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         xmlns:app="http://schemas.android.com/apk/res-auto"
         android:layout_margin="1dp"
         android:descendantFocusability="blocksDescendants"
         android:orientation="vertical"
         android:padding="3dp">

<FrameLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">
    <ImageView
        android:id="@+id/galley_photo_item_image"
        android:layout_width="120dp"
        android:layout_height="120dp"/>
    <CheckBox
        android:id="@+id/galley_photo_item_checkbox"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:buttonTint="@color/colorPrimary"
        android:visibility="invisible"/>
</FrameLayout>
<TextView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:minLines="3"
    android:maxLines="3"
    android:id="@+id/image_name_text"/>

Diff:https://www.diffchecker.com/qe8pcozv

您还可以看到TextView高度的差异,但是它并不是元的,它在这两种情况下都能工作。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37364542

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档