2014-07-17 125 views
0

問題谷歌地圖V2和導航抽屜

我想使用Navigate DrawerGoogle Map V2但我不能禁用導航抽屜

,並在地圖上給觸摸處理程序時,它被感動了。我該怎麼辦 ???

注意

我有經驗了類似的問題,這樣的前...

我想用在Navigate DrawerSeekBar,它不能滾動搜索欄。

那時我可以直接使用onTouchListener()作爲SeekBar的存檔,但現在它不能。

回答

1

解決方案解決方案

所以,這裏是我的解決方案,以感謝this post,我已經適應了一些代碼來存檔我的目標。

STEP 1 ::創建TouchableWrapper類爲MySupportMapFragment

STEP 2 ::倍率dispatchTouchEvent()並執行如以下

public class TouchableWrapper extends FrameLayout { 

    public TouchableWrapper(Context context) { 
     super(context); 
    } 

    @Override 
    public boolean dispatchTouchEvent(MotionEvent ev) { 

     ViewParent v; 
     switch (ev.getAction()) { 
      case MotionEvent.ACTION_DOWN: 
       v = this.getParent(); 
       v.requestDisallowInterceptTouchEvent(true); 
       break; 
      case MotionEvent.ACTION_UP: 
       v = this.getParent(); 
       v.requestDisallowInterceptTouchEvent(false); 
       break; 
     } 
     return super.dispatchTouchEvent(ev); 
    } 
} 

步驟3 ::創建MySupportMapFragment類並與TouchableWrapper綁定它

public class MySupportMapFragment extends SupportMapFragment { 
    public View mOriginalContentView; 
    public TouchableWrapper mTouchView; 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup parent, Bundle savedInstanceState) { 
     mOriginalContentView = super.onCreateView(inflater, parent, savedInstanceState); 
     mTouchView = new TouchableWrapper(getActivity()); 
     mTouchView.addView(mOriginalContentView); 
     return mTouchView; 
    } 

    @Override 
    public View getView() { 
     return mOriginalContentView; 
    } 

} 

STEP 4 ::您最初的XML地圖碎片更改爲您的自定義一個

<fragment xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/mapFragment" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    android:layout_below="@+id/buttonBar" 
    class="com.myFactory.myApp.MySupportMapFragment" 
    /> 

是啊,這就是現在的Google Map V2可以在Navigating Drawer

0

希望this是,你已實施早期

seekbar.setOnTouchListener(new ListView.OnTouchListener() 
{ 
    @Override 
    public boolean onTouch(View v, MotionEvent event) 
    { 
     int action = event.getAction(); 
     switch (action) 
     { 
     case MotionEvent.ACTION_DOWN: 
      // Disallow Drawer to intercept touch events. 
      v.getParent().requestDisallowInterceptTouchEvent(true); 
      break; 

     case MotionEvent.ACTION_UP: 
      // Allow Drawer to intercept touch events. 
      v.getParent().requestDisallowInterceptTouchEvent(false); 
      break; 
     } 

     // Handle seekbar touch events. 
     v.onTouchEvent(event); 
     return true; 
    } 
}); 
+0

拖我已經提到,它可以」使用谷歌地圖片段 –