Android TextView未获取ImageView的空间

Android TextView未获取ImageView的空间,android,android-layout,Android,Android Layout,我试图从一个网站上获取新闻。有些文章有图片。这是我的问题:有些文章没有图像,所以我想删除该行的Imageview,而title textview应该获得该空间。 我试图在BaseAdapter中实现它,但是setvisibility(View.Gone)不起作用 这是我的布局文件: <!-- Thumbnail Image --> <com.android.volley.toolbox.NetworkImageView android:id="@+id/thumbnai

我试图从一个网站上获取新闻。有些文章有图片。这是我的问题:有些文章没有图像,所以我想删除该行的Imageview,而title textview应该获得该空间。 我试图在
BaseAdapter
中实现它,但是
setvisibility(View.Gone)
不起作用

这是我的布局文件:

<!-- Thumbnail Image -->
<com.android.volley.toolbox.NetworkImageView
    android:id="@+id/thumbnail"
    android:layout_width="80dp"
    android:layout_height="80dp"
    android:layout_alignParentLeft="true"
    android:layout_marginRight="8dp" />

<!-- News Title -->
<TextView
    android:id="@+id/title"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:textSize="@dimen/title"
    android:ellipsize="end"
    android:textStyle="bold"
    android:layout_alignTop="@+id/thumbnail"
    android:layout_toRightOf="@+id/thumbnail"/>
电流输出为: 我想让textview使用Imageview的空白区域

当我尝试使用ViewHolder进行平滑过渡时,我无法实现以下逻辑:

if (position==-1)
    {
        viewHolder.thumbnail.setVisibility(View.GONE);
    }
    else
    {
        viewHolder.thumbnail.setImageUrl(news.getThumbnailUrl(), imageLoader);
    }

您可以检查图像的URL是否有效,然后可以使用可见性概念。请使用类似以下代码的内容:

if(!URLUtil.isValidUrl(m.getThumbnailUrl())){
    thumbNail.setVisibility(View.GONE);
}else {
        thumbNail.setImageUrl(m.getThumbnailUrl(), imageLoader);
        thumbNail.setVisibility(View.VISIBLE);
    }

希望这对您有所帮助。

您可以检查图像的URL是否有效,然后可以使用Visibility gone概念。使用类似以下代码的内容:

if(!URLUtil.isValidUrl(m.getThumbnailUrl())){
    thumbNail.setVisibility(View.GONE);
}else {
        thumbNail.setImageUrl(m.getThumbnailUrl(), imageLoader);
        thumbNail.setVisibility(View.VISIBLE);
    }
希望这对您有所帮助。

试试这个:

    if(m.getThumbnailUrl() == null)
    {
     thumbNail.setVisibility(View.GONE);
     LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,  LinearLayout.LayoutParams.WRAP_CONTENT);
lp.addrule(LinearLayout.RIGHT_OF,0);
         lp.setMargins(-150,0,0,0); //set your margins for your textview as your want
         title.setLayoutParams(lp);
         Your_Linear_Layout_Name.addView(title, lp);
        //or RelativeLayoutName.addView(title, lp);
        }

        .....
试试这个:

    if(m.getThumbnailUrl() == null)
    {
     thumbNail.setVisibility(View.GONE);
     LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,  LinearLayout.LayoutParams.WRAP_CONTENT);
lp.addrule(LinearLayout.RIGHT_OF,0);
         lp.setMargins(-150,0,0,0); //set your margins for your textview as your want
         title.setLayoutParams(lp);
         Your_Linear_Layout_Name.addView(title, lp);
        //or RelativeLayoutName.addView(title, lp);
        }

        .....
m.getThumbnailUrl()返回一个字符串,对吗

你试过这个吗

if(m.getThumbnailUrl() == null || TextUtils.isEmpty(m.getThumbnailUrl()))
尝试调试并检查是否符合以下要求:

thumbNail.setVisibility(View.GONE);
m.getThumbnailUrl()返回一个字符串,对吗

你试过这个吗

if(m.getThumbnailUrl() == null || TextUtils.isEmpty(m.getThumbnailUrl()))
尝试调试并检查是否符合以下要求:

thumbNail.setVisibility(View.GONE);

当您没有文章的图像时,以编程方式为特定的
TextView
设置
LayoutParameters

if(m.getThumbnailUrl() == null)
{

 thumbNail.setVisibility(View.GONE);
 RelativeLayout.LayoutParams layoutParams= (RelativeLayout.LayoutParams) title.getLayoutParams();
 layoutParams.addRule(RelativeLayout.RIGHT_OF,0);
 layoutParams.addRule(RelativeLayout.ALIGN_TOP,0);
 layoutParams.addRule(RelativeLayout.ALIGN_PARENT_LEFT,RelativeLayout.TRUE);
 title.setLayoutParams(layoutParams);
}

当您没有文章的图像时,以编程方式为特定的
TextView
设置
LayoutParameters

if(m.getThumbnailUrl() == null)
{

 thumbNail.setVisibility(View.GONE);
 RelativeLayout.LayoutParams layoutParams= (RelativeLayout.LayoutParams) title.getLayoutParams();
 layoutParams.addRule(RelativeLayout.RIGHT_OF,0);
 layoutParams.addRule(RelativeLayout.ALIGN_TOP,0);
 layoutParams.addRule(RelativeLayout.ALIGN_PARENT_LEFT,RelativeLayout.TRUE);
 title.setLayoutParams(layoutParams);
}

这是因为ListView的工作方式。您可以尝试以下方法:

if(m.getThumbnailUrl() == null)
    {

     thumbNail.setVisibility(View.GONE);
     LayoutParams layoutParams = title.getLayoutParams();
     layoutParams.width = ViewGroup.LayoutParams.MATCH_PARENT;
     layoutParams.height = ViewGroup.LayoutParams.WRAP_CONTENT;
     title.setLayoutParams(layoutParams); 
    }

    else {

        thumbanil.setVisibility(View.VISIBLE);
        thumbNail.setImageUrl(m.getThumbnailUrl(), imageLoader);
        LayoutParams layoutParams = title.getLayoutParams();
        layoutParams.width = ViewGroup.LayoutParams.MATCH_PARENT;
        layoutParams.height = ViewGroup.LayoutParams.WRAP_CONTENT;
        title.setLayoutParams(layoutParams); 

    }

这是因为ListView的工作方式。您可以尝试以下方法:

if(m.getThumbnailUrl() == null)
    {

     thumbNail.setVisibility(View.GONE);
     LayoutParams layoutParams = title.getLayoutParams();
     layoutParams.width = ViewGroup.LayoutParams.MATCH_PARENT;
     layoutParams.height = ViewGroup.LayoutParams.WRAP_CONTENT;
     title.setLayoutParams(layoutParams); 
    }

    else {

        thumbanil.setVisibility(View.VISIBLE);
        thumbNail.setImageUrl(m.getThumbnailUrl(), imageLoader);
        LayoutParams layoutParams = title.getLayoutParams();
        layoutParams.width = ViewGroup.LayoutParams.MATCH_PARENT;
        layoutParams.height = ViewGroup.LayoutParams.WRAP_CONTENT;
        title.setLayoutParams(layoutParams); 

    }


我会试试你的建议,让你知道这不是我想要的。甚至我丢失了带有图像的文章的图像。文本现在获得了空间,但我丢失了图像。一家报纸给了我想要的布局,但
isValidUrl
使图像url在其他报纸提要中无效??我们是否有其他选项可以
isvalidul
?我们是否有其他选项可以
isvalidul
。我没有上网。不过我们很接近。我会试试你的建议,让你知道这不是我想要的。甚至我丢失了带有图像的文章的图像。文本现在获得了空间,但我丢失了图像。一家报纸给了我想要的布局,但
isValidUrl
使图像url在其他报纸提要中无效??我们是否有其他选项可以
isvalidul
?我们是否有其他选项可以
isvalidul
。我没有上网。但是我们太接近了。我得到了你的addRule逻辑。它没有得到空间。我得到了你的addRule逻辑。它没有得到空间。可能m.getThumnailUrl()没有返回null。它可能会返回类似“”的内容。不为null且不是有效链接。你从截取的日志中得到了一些错误吗?我相信有些链接可能被破坏,或者没有转换成有效的URI。你可以在这里试试:;在检查null之后。现在没有人使用它。可能m.getThumnailUrl()没有返回null。它可能返回类似“”的内容。不为null且不是有效链接。你从截取的日志中得到了一些错误吗?我相信有些链接可能被破坏,或者没有转换成有效的URI。你可以在这里试试:;在检查null之后。现在没有人使用它。您确定m.getThumbnailUrl()正在返回null吗??如果是,请在其为null时尝试删除
android:layout\u toRightOf=“@+id/缩略图”
,并检查是否在其返回null时尝试删除
android:layout\u toRightOf=“@+id/缩略图”
?尝试添加
lp.addrule(lp.RIGHT\u OF,0)
到上面的代码,如果需要,删除setMargins。好的,我稍后会尝试让您知道。只有当它满足我的问题时,我才会这样做。谢谢。您确定m.getThumbnailUrl()正在返回null吗??如果是,请在其为null时尝试删除
android:layout\u toRightOf=“@+id/缩略图”
,并检查是否在其返回null时尝试删除
android:layout\u toRightOf=“@+id/缩略图”
?尝试添加
lp.addrule(lp.RIGHT\u OF,0)
到上面的代码,如果需要,删除setMargins。好的,我稍后会尝试让您知道。只有当它满足我的问题时,我才会这样做。非常感谢。