我想使用Navigate Drawer
Google Map V2
但我不能禁用導航抽屜
,並在地圖上給觸摸處理程序時,它被感動了。我該怎麼辦 ???
注意
我有經驗了類似的問題,這樣的前...
我想用在Navigate Drawer
SeekBar
,它不能滾動搜索欄。
那時我可以直接使用onTouchListener()
作爲SeekBar的存檔,但現在它不能。
我想使用Navigate Drawer
Google Map V2
但我不能禁用導航抽屜
,並在地圖上給觸摸處理程序時,它被感動了。我該怎麼辦 ???
注意
我有經驗了類似的問題,這樣的前...
我想用在Navigate Drawer
SeekBar
,它不能滾動搜索欄。
那時我可以直接使用onTouchListener()
作爲SeekBar的存檔,但現在它不能。
解決方案解決方案
所以,這裏是我的解決方案,以感謝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
希望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;
}
});
拖我已經提到,它可以」使用谷歌地圖片段 –