【问题标题】:Expandable list issue: setting group textview maxLine and expanding the list same time可扩展列表问题:设置组 textview maxLine 并同时扩展列表
【发布时间】:2013-05-15 08:40:06
【问题描述】:

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

 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;


            }
        });

【问题讨论】:

    标签: android expandablelistview


    【解决方案1】:

    是的,我试过了,终于得到了答案。实际上的问题是,当您在可扩展列表视图中展开组并且我正在设置 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 最大行数的行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-07-16
      • 1970-01-01
      • 2019-09-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多