0

1 つの (MapView のような) コントロールと、それをオーバーレイするいくつかの追加ボタンを含む FrameLayout ビューがあります。(レイアウトxmlは以下にあります)。

ユーザーがタッチだけでなくトラックボールを使用してメイン ビューをパン/スクロールできるようにしたいと考えています。問題は、トラックボールを使用すると、レイアウト上のすべてのコントロール間でフォーカスが切り替わるだけであり、 onTrackballEventを MainView だけに含める方法が見つからないように見えることです。

どんな提案でも大歓迎です、事前に感謝します。

<?xml version="1.0" encoding="utf-8"?>

<merge xmlns:android="http://schemas.android.com/apk/res/android"   
    android:layout_width="fill_parent" android:layout_height="fill_parent">
<FrameLayout android:id="@+id/pageView" 
    xmlns:panel="http://schemas.android.com/apk/res/com.yappa"
      xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent">

    <MainView
        android:id="@+id/mainView" 
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">
    </MainView>


    <ZoomControls android:id="@+id/ZoomControls01"
        android:layout_gravity="bottom|center"
        android:layout_height="wrap_content" android:layout_width="wrap_content">
    </ZoomControls>

    <Panel
          ....
    </Panel>

</FrameLayout>

</merge>
4

2 に答える 2

1

秘訣はdispatchTrackball、カスタムビューでをオーバーライドし、イベントを取得することです。

これが誰かに役立つことを願っています。

于 2009-08-09T10:46:16.557 に答える
0

フォーカス可能なプロパティの前に述べたように、パンは単純に実装されます。mapview の focusable 属性を true に設定すると、mapview にフォーカスが置かれると、実際にトラックボールでマップがパンされます。

于 2011-05-20T19:58:22.930 に答える