ExpandableListAdapter.getChildView() 与 AbsListView.LayoutParams 交互
我正在开发 BaseExpandableListAdapter 的扩展,并具有以下 getChildView() 实现:
public View getChildView(int groupPosition, int childPosition,
boolean isLastChild, View convertView, ViewGroup parent)
{
AbsListView.LayoutParams lp = new AbsListView.LayoutParams
(ViewGroup.LayoutParams.FILL_PARENT, 48);
RelativeLayout layout = new RelativeLayout(myExpandableListActivity.this);
layout.setLayoutParams(lp);
TextView name = new TextView(myExpandableListActivity.this);
name.setText("testing...");
layout.addView(name);
return layout;
}
此代码正在运行,当我运行应用程序、展开组并单击子项时,父应用程序能够检测到 onChildClick( )正确。
但是,我注意到如果我不调用 setLayoutParms(),onChildClick() 将不再起作用。我的问题是,当我将 AbsListView.LayoutParams 分配给返回的子视图时会发生什么?为什么需要让我的 onChildClick() 在父应用程序中响应?
提前致谢!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在进一步研究代码的其他部分之后,看起来省略 setLayoutParms() 并不是导致我的 onChildClick() 无法工作的原因。我还使用布局充气器来设置我的RelativeLayout,其中包括一个复选框。事实证明,是复选框导致孩子无法点击,我必须进一步研究这一点。
感谢您的阅读!
After playing with other parts of the code some more, it looks like leaving out setLayoutParms() was not what was causing my onChildClick() to not work. I was also using a layout inflater to set up my RelativeLayout, which included a CheckBox. Turns out it was the CheckBox that was causing the child to be unclickable, something that I'll have to look into further.
Thanks for reading!