0

如果可扩展列表的组文本视图中有多行文本,则

我想要的是-:当第一个列表加载时,每个组中只出现一行,当用户单击组时,组中的所有行都应该可见+组应该同时展开。

我试图实现这一点,但是当我单击列表中的组视图时,它会展开,但组中的所有文本行都不可见,但是当我再次单击同一组时,所有行都可见。

这就是我尝试过的:

在组 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- 对可扩展列表的引用。

 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;


            }
        });
4

1 回答 1

0

是的,我试过了,终于得到了答案。实际上的问题是,当您在可扩展列表视图中展开组并且我正在设置 maxline 1 时,每次调用 getGroupView 方法时,这就是为什么在第一次单击时所有组文本行都不可见。

所以这是对我有用的解决方案。

 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 最大行数的行。

于 2013-05-15T11:01:32.510 回答