可扩展列表问题:设置组textview maxLine并同时扩展列表

时间:2013-05-15 08:40:07

标签: android expandablelistview

如果可扩展列表的组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;


            }
        });

1 个答案:

答案 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的行。