2012-01-04 8 views
0

私はいくつかの垂直レイアウトが送出される水平レイアウトを持っています。LinearLayoutは子のフォーカスを変更セレクタの状態にします

私は縦型レイアウトのonFocusEventをキャッチしたいので、そのうちの1つがフォーカスを取得すると、縦型レイアウトに含まれるイメージとテキストビューがセレクタの状態を変更します。

私はこのようなOnFocusChangeイベントをキャッチしてそれをテストしてみました:

LLContact.setOnFocusChangeListener(new OnFocusChangeListener() { 

     public void onFocusChange(View arg0, boolean hasFocus) { 
     // TODO Auto-generated method stub 

     if (hasFocus == true) { 

      // Has Focus 

     } else { 

      // Loses focus 

     } 

     } 
    }); 

をしかし、イベントがトリガされることはありません。

"FocusableInTouchMode"をtrue、Focusableをtrueに設定しましたが、イベントが発生しないようです...手がかりはありますか?

ありがとうございます。

+0

このコードはどの方法で入力していますか? –

+0

このメソッドは、自分のアクティビティのsetContentViewの後と、LineontLayoutにLLContactを割り当てた後にonCreateに配置されます。 – Thordax

答えて

1

あなたはマネージャーのTextViewとImageViewののチャイルズの次のプロパティを設定する必要があります。 focusable=false; clickable=false; focusable in touch mode=false;

をtrueにレイアウトのこれらのプロパティを設定します。

+0

ありがとう、私はそれが私の質問に答えると思います!ちなみに、その振る舞いは私が期待していたものではありません。実際には、LinearLayoutで指を動かすと「フォーカス」状態になり、指がLinearLayoutを離れると、LinearLayoutの状態が「通常」に設定されます。イベントはOnFocusChangeと異なるのですか? – Thordax

+0

Then listViewのレイアウトでセレクタをlistSelectorプロパティとして設定し、onFocusChangeメソッドをオーバーライドする必要はありません – jeet

+0

これはデフォルトではありません! – hasan83

関連する問題