Android:将可见设置为在运行时消失会留下一个空白空间
Posted
技术标签:
【中文标题】Android:将可见设置为在运行时消失会留下一个空白空间【英文标题】:Android : setting visible to gone at runtime leaves an empty space 【发布时间】:2014-07-20 23:43:25 【问题描述】:如图所示,我的列表视图中有布局 A。考虑每个正方形右上角的按钮。如果我们点击它,它将隐藏RelativeLayout,即将其可见性设置为消失。
holder.imgBtn= (ImageView) convertView.findViewById(R.id.imgBtn);
holder.rLayout = (RelativeLayout) convertView.findViewById(R.id.rLayout);
convertView.setTag(holder);
holder.imgBtn.setOnClickListener(new OnClickListener()
@Override
public void onClick(View v)
holder.rLayout.setVisibility(View.GONE);
);
但是为什么还有空格呢?
xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:ibutton="http://schemas.android.com/apk/res-auto"
android:id="@+id/rLayout"
android:layout_
android:layout_
android:orientation="vertical"
android:paddingBottom="5dp" >
//some code
</RelativeLayout >
【问题讨论】:
贴代码sn-p ? 您是把列表视图项目的 1 部分放到 GONE 还是整个项目?我不认为 listview 是为了让你可以将一个项目设置为不可见(尽管如果一个项目有多个子视图,这些子视图可以设置为消失)。 检查活动 xml 中的其他视图layout_height
通知您的适配器进行更改..它将删除该空白
@MeenalSharma 它不会改变任何东西。见 Gabe Sechan 的评论。
【参考方案1】:
这里可能的解决方案:Android: How to hide a ListView Item
我最终做的是在 xml 中创建一个“空项目”布局,并根据我的标准而不是 getView() 中的转换视图返回它...
我没有返回 convertView,而是返回了我的 null_item...
return inflater.inflate(R.layout.null_item, null);
null_item.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_
android:layout_ >
</LinearLayout>
也就是说,您最好从列表中删除该项目并更新您的数据集。这可能更容易。
【讨论】:
以上是关于Android:将可见设置为在运行时消失会留下一个空白空间的主要内容,如果未能解决你的问题,请参考以下文章
当它们移动以填充其他淡出的 div 留下的空白空间时如何为 div 设置动画