如果可扩展列表的组textview中有多行文本,则
我想要的是 - 当第一个列表加载时,每个组中只出现一行,当用户点击组时,组中的所有行都应该是可见的+组应该在同一时间。
我试图实现,但是当我点击列表中的组视图时,它已扩展但组中的所有文本行都不可见但是当我再次点击同一组时,所有线条可见。
这就是我尝试过的:
在组getview方法中,我将textview的最大行设置为1。
public View getGroupView(int i, boolean b, View view, ViewGroup viewGroup) {
TextView textView = new TextView(CorrectqaFragment.this.getActivity());
textView.setText(getGroup(i).toString());
textView.setMaxLines(1); //set maximum lines of textview to 1.
return textView;
}
elv- refrence to expandable list。
elv.setOnGroupClickListener(new OnGroupClickListener() {
public boolean onGroupClick(ExpandableListView parent, View v,
int groupPosition, long id) {
TextView tv = (TextView)v;
tv.setMaxLines(Integer.MAX_VALUE); //set the max lines to max value
parent.expandGroup(groupPosition); //expand the group
return true;
}
});
答案 0 :(得分:0)
是的,我尝试了,终于得到了答案。实际问题是每次在可扩展列表视图中展开组时调用getGroupView方法并且我设置maxline 1,这就是为什么在第一次单击所有组文本行时都不可见。
所以这里的解决方案对我有用。
public View getGroupView(int i, boolean b, View view, ViewGroup viewGroup) {
TextView textView = new TextView(CorrectqaFragment.this.getActivity());
textView.setText(getGroup(i).toString());
if (b) {
textView.setMaxLines(Integer.MAX_VALUE);
}else{
textView.setMaxLines(1); //set maximum lines of textview to 1.
}
return textView;
}
OnGroupClickListener - :
elv.setOnGroupClickListener(new OnGroupClickListener() {
public boolean onGroupClick(ExpandableListView parent, View v,
int groupPosition, long id) {
parent.expandGroup(groupPosition); //expand the group
return true;
}
});
说明: - 在getGroupView方法中扩展或不扩展检查组,并将maxline设置为textview:
if (b) {
textView.setMaxLines(Integer.MAX_VALUE);
}else{
textView.setMaxLines(1); //set maximum lines of textview to 1.
}
其中b是isGroupExpand返回的布尔值。 b = true - >小组扩大,反之亦然。
并从侦听器中删除那些设置textview max lines的行。