自定义ViewGroup控件 textView 的ellipsize end 属性无效

自定义ViewGroup控件 textView 的ellipsize end 属性无效
viewgroup里放的是textview,当text超长时,想要后面显示省略号.使用了
android:ellipsize=“end” android:singleLine=“true” 发现没有效果,
自定义ViewGroup控件 textView 的ellipsize end 属性无效_第1张图片
问题:发现该过长的textview的measuredWidth和父控件的一样大,因为两边设置的自定义的margin,左边坐标点在margin,右边就在父控件的measuredWidth+margin处,所以没有显示
解决:在测量子控件时当该子控件的measuredWidth大于等于父控件减去两边的margin时就让该控件的大小等于this.measuredWidth-2*horizontalMargin

   if (child.measuredWidth>=this.measuredWidth-2*horizontalMargin){
            childWidthMeasureSpec = MeasureSpec.makeMeasureSpec(parentWidth-2*horizontalMargin, MeasureSpec.AT_MOST)
        }

效果:
自定义ViewGroup控件 textView 的ellipsize end 属性无效_第2张图片

你可能感兴趣的:(错误收集)