2012-03-02 6 views
1

私は動的に(XMLから膨らんだ)追加され、PagerAdapterによって制御されるビューを保持するViewPagerを持っています。追加されたビューには、簡単なEditTextとタッチ可能なチャートを保持するSurfaceViewがあります。Touchable/Focusableオブジェクトを持つAndroid ViewPager

は、ユーザがビューを介してページングされるときEditTextsからフォーカスを削除するために、私は、this suggestionに従い、動的に追加されたビューのレイアウトに以下を加えた:完全に働いた

android:clickable="true" 
android:focusable="true" 
android:focusableInTouchMode="true" 

、それが導入さ新しい問題。ユーザーはSurfaceViewのチャートに触れることができる必要がありますが、SurfaceViewは各タッチを2つのタッチとして登録しています(上記のXML属性を削除すると正しく動作しますが、EditTextフォーカスの問題があります)。

私は上記のXML属性のバリエーションを試しましたが(いくつかの真実といくつかの偽を作りました)、しかし、それは望みの結果をもたらしませんでした。私はまた、OnFocusChangeListenerをEditTextsに追加して、フォーカスがあった場合は上記の属性が真となり、それ以外の場合はfalseになるようにしました。

私はいくつかの検索を行っていますが、私が探していたものを見つけることができませんでした - どんな助けでも大歓迎です。

答えて

2

onTouchEventを使用していますか?もしそうなら、それはのために登録します。

ACTION_UP 
ACTION_DOWN 
ACTION_MOVE 
and more 

あなたはこのようなだけACTION_UPイベントを何が起こっているかを伝えると扱うことができます。

public boolean onTouchEvent(MotionEvent event) 
{ 
    int action = event.getAction(); 

    //When the user lifts up... 
    if (action==MotionEvent.ACTION_UP) 
    { 
     //Do something here 
    } 
} 

次の2つのタッチを拾うのはこのためかもしれません。

+0

それは世話をしました - あなたの助けてくれてありがとう! – user1205577

関連する問題