- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
问题很简单,但我做不出来。我有一个带有 3 个标题的可扩展列表,它们可以是填充的也可以是空的。
我希望在您展开一个空的组时显示一个简单的 TextView ,我已经找了一段时间但似乎没有任何效果。我不能使用 setEmpty(),因为这只有在所有组都为空时才有效。
我在这里找到了一个类似的帖子:ExpandableListView - empty group message
如果我尝试按照建议的已接受答案去做,那么:
@Override
public int getChildrenCount(int groupPosition) {
if(this._listDataChild.get(this._listDataHeader.get(groupPosition))
.size() != 0){
return this._listDataChild.get(this._listDataHeader.get(groupPosition))
.size();
}
return 1;
}
当我尝试扩展空组时出现错误...而且我认为这无论如何都行不通,例如,如果我有一个有 1 个 child 的组会发生什么,它会被视为空组吗? ?
编辑:
好吧,我解决了这个问题,方法是始终在我的子列表中的第一个位置放置一个空对象,然后当 getchildrencount 返回 1 时,我知道它实际上是空的,所以我调用 switch 的空情况。在 switch 的填充情况下,我总是隐藏第一个元素,这可能不是最干净的方法,但这是有效的。
最佳答案
如果您使用不同的布局,无论它们是填充的还是空的,您都可以像这样通过覆盖 getChildType
或 getGroupType
来区分
private static final int CHILD_TYPE_COUNT = 2;
@Override
public int getChildType(int groupPosition, int childPosition) {
if(obj.isEmpty())
return 0;
else if(obj.isPopulated)
return 1;
}
@Override
public int getChildTypeCount() {
return CHILD_TYPE_COUNT;
}
然后就可以使用相应的布局来填充了。我建议你也使用 ViewHolder-Pattern
static class PopulatedViewHolder {
//declare the elements of a populated view here
}
static class EmptyViewHolder {
//declare the elements of an empty view here
}
@Override
public View getChildView(final int groupPosition, final int childPosition, boolean isLastChild,
View convertView, ViewGroup parent) {
EmptyViewHolder emptyViewHolder = null;
PopulatedViewHolder populatedViewHolder = null;
//check if the type of your view is populated or empty and use the corresponding layout
int type = getChildType(groupPosition, childPosition);
if (convertView == null || (type == 0 && (convertView.getTag()) instanceof PopulatedViewHolder) || (type == 1 && (convertView.getTag()) instanceof EmptyViewHolder)) {
LayoutInflater inflater = (LayoutInflater)context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
switch(type){
case 0:
//type is empty
emptyViewHolder = new EmptyViewHolder();
convertView = inflater.inflate(R.layout.empty_layout,
parent, false);
//...initialize your viewcomponents of the populated layout here...
convertView.setTag(emptyViewHolder);
break;
case 1:
//populated
populatedViewHolder = new PopulatedViewHolder();
convertView = inflater.inflate(
R.layout.populated_layout, parent, false);
//...initialize your viewcomponents of the populated layout here...
convertView.setTag(populatedViewHolder);
break;
}
}
else {
switch (type) {
case 0:
emptyViewHolder = (EmptyViewHolder)convertView.getTag();
break;
case 1:
PopulatedViewHolder = (PopulatedViewHolder)convertView.getTag();
break;
}
}
switch(type){
case 0:
//empty
//set the values of your empty view here
break;
case 1:
//populated
//set the values of your populated view here
break;
}
return convertView;
}
关于android - expandableList 中空组的备用 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21394733/
我正在关注本教程:ExpandableListView 但在我的设备(Samsung Galaxy S i9000)中,文本与可扩展图标重叠,如图所示。 我怎样才能避免这种情况?谢谢 最佳答案 这个例
我希望在长按 ExpandableList 时为每个组创建一个菜单。但目前只有非空组在长按时显示蓝色背景并且可以选择。所有空组都不会对长按使用react。 我使用 registerForContext
我正在尝试显示一个多深度的可扩展列表。也就是说,我们有一个表头 ID |学校 |年级 |姓名 我想展示一个可扩展的列表学校 - 年级 - 姓名 学校是第一个深度,等级是第二个深度,名字是叶节点。我了解
我有一个 expandableList,在子元素中我添加了一些 EditText、复选框和微调器。这些已正确创建和显示。选中复选框后会显示其他 EditText 和微调器,然后用户可以添加文本并从微调
问题很简单,但我做不出来。我有一个带有 3 个标题的可扩展列表,它们可以是填充的也可以是空的。 我希望在您展开一个空的组时显示一个简单的 TextView ,我已经找了一段时间但似乎没有任何效果。我不
每个组 View 我只有 1 个 subview ,它是从布局 .xml 文件扩展而来的。我希望为 subview 设置动画,以便在显示子项时,其下方的列表项向下滑动。我尝试了一些动画,但问题是首先使
我正在尝试个性化 ExpandableLisTview 我创造 Iterator.Xml:带有 ExpandableList View group.xml:具有简单 TextView 和 Button
我正在创建使用可扩展列表 View 的android应用,每个子项都包括图像 View 和扩展了 BaseExpandableAdapter 的文本。 图像在可绘制的forlder中,我使用数组检索它
我一直在使用自定义的 ExpandableList(参见下面的示例图片),其中每个项目始终有一个子项。这个 child 由三部分组成。每个部分都有一个标题(红色条),下面是一个空项目或项目列表。此列表
这个问题可能很菜鸟,但我就是找不到正确的解决方案。 所以这是我的问题: 我想在多个 ExpandableLists(比如说 5 个)中显示数据(一个 java.util.List 和我的 TaskOb
我只想一次展开父列表中的一项,目前我的 onCreate 代码如下。 (按我的意愿工作,但是一次只允许一个父打开的方法不起作用) public void onCreate(Bundle savedIn
我根据要编辑的editText的结果,得到Expandable List里面的editText为childcount的个数。但 editText 位置总是不同或 childcount 出错,我收到此错
这是我的 XML 布局文件,我正在使用 chrisbanes pull 来刷新库 here 出于某种原因,它只会显示可点击项目的可展开列表中的第一
我有关于 onChildClickListener 的代码,如下面的代码 fragment OnChildClickListener occl = new OnChildClickListener()
如何折叠 Expandable List 中的所有 ChildView 组。现在我有两个按钮来控制 Activity 上的全部展开和全部折叠。可扩展按钮没问题,它正在工作,但我不知道如何折叠所有 Ch
我想从 SQLite 数据库获取数据并通过 SimpleCursorTreeAdapter 填充我的 ExpandableListView,但它在某些地方失败了。我真的找不到问题所在,甚至不知道异常发
我是一名优秀的程序员,十分优秀!