1

有没有办法如何改变我的自定义视图的孩子在它的onmeasure(或onlayout,OnDraw中,我居然不知道在哪里把那个:)Android的 - 改变的布局儿童onMeasure

我有这样的代码应该缩小我的自定义布局中包含的textview继承自LinearLayout并添加一个onclicklistener它..问题是,这只是不工作..代码执行,但没有明显的影响。我也试图呼吁在树上基本上所有视图无效:)

cardContent是附加到覆盖LinearLayout的TextView .. 我不知何故觉得这是一路错误,所以请帮助我。我不知道在Android上编写自定义布局..谢谢!

@Override 
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { 
    if(cardContent.getLineCount() > 10){ 
     this.setOnClickListener(this); 
     expandIcon.setVisibility(VISIBLE); 
     cardContent.setMaxLines(6); 

     expanded = false; 
    } 
    super.onMeasure(widthMeasureSpec, heightMeasureSpec); 


} 
+0

哪一部分不工作?this.setOnClickListener(this)'你不能在你的自定义类的构造函数中设置监听器吗? – zapl

+0

不... setMaxLines没有被调用..这是我的麻烦问题.. – simekadam

回答

1

你需要调用super.onMeasure(widthMeasureSpec, heightMeasureSpec)你打电话 TextView.getLineCount()之前。否则它总是返回0.