2012-05-01 5 views
3

私はListViewのArrayAdapterを持っています。それはTextViewと矢印の画像を持っています。 TextViewが3行以上ある場合、矢印イメージを表示する必要がありますが、行数が<の場合は3つの矢印を非表示にする必要があります。 しかし、実際には、TextViewが描画される前に、アダプタの行数はカウントされません。何か案は?私は矢印付きのアイテムを表示する必要がありますか、行数に依存します。アダプタで行を取得する

このコードは動作しない(TextViewにはラインのみ描画した後、カウント受信)

if(holder.text.getLineCount() < 3) 
{ 
     holder.arrow.setVisibility(View.GONE); 
} 
else 
{ 
     holder.arrow.setVisibility(View.VISIBLE); 
} 

答えて

0

あなたはテキストが更新された後まで、あなたのコードの実行を遅延する必要があります。このためにTextView::addTextChangedListener()イベントを使用してみてください。

holder.text.addTextChangedListener(new TextWatcher() { 
    public void afterTextChanged(Editable target) { 

     if(holder.text.getLineCount() < 3) { 
      holder.arrow.setVisibility(View.GONE); 
     } 
     else { 
      holder.arrow.setVisibility(View.VISIBLE); 
     } 

    } 
    public void beforeTextChanged(CharSequence s, int start, int count, int after){} 
    public void onTextChanged(CharSequence s, int start, int before, int count){} 
}); 
+0

矢印を表示する場合も、1行または2行(ListViewを更新した後にすべての矢印を非表示にします) – user1021984

関連する問題