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.