Android TextView未获取ImageView的空间
我试图从一个网站上获取新闻。有些文章有图片。这是我的问题:有些文章没有图像,所以我想删除该行的Imageview,而title textview应该获得该空间。 我试图在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
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。好的,我稍后会尝试让您知道。只有当它满足我的问题时,我才会这样做。非常感谢。