Android 安卓:OnTouchListener不';行不通
在我的应用程序中,我有一个片段,里面有谷歌地图。当用户向右滑动该片段时,我想将其从活动中删除。以下是我的片段代码:Android 安卓:OnTouchListener不';行不通,android,google-maps,android-fragments,Android,Google Maps,Android Fragments,在我的应用程序中,我有一个片段,里面有谷歌地图。当用户向右滑动该片段时,我想将其从活动中删除。以下是我的片段代码: public class MapFragment extends Fragment { public GoogleMap map = null; public static MapFragment newInstance() { MapFragment mapFragment = new MapFragment(); return mapFragment; }
public class MapFragment extends Fragment {
public GoogleMap map = null;
public static MapFragment newInstance() {
MapFragment mapFragment = new MapFragment();
return mapFragment;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
super.onCreateView(inflater, container, savedInstanceState);
final View view = inflater.inflate(R.layout.fragment_map, container, false);
map = ((SupportMapFragment) getChildFragmentManager()
.findFragmentById( R.id.view_map )).getMap();
map.setOnMapClickListener(null);
map.getUiSettings().setScrollGesturesEnabled(false);
view.setOnTouchListener(new OnSwipeListener(getActivity()) {
@Override
public void onSwipeRight() {
TranslateAnimation animation = new TranslateAnimation(0, +view.getWidth(), 0, 0);
animation.setDuration(500);
view.startAnimation(animation);
view.setVisibility(View.GONE);
}
@Override
public void onSwipeLeft() {
// do nothing
}
});
return view;
}
}
以下是我的布局:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="200dip"
android:background="@color/header_black"
android:gravity="center"
android:orientation="horizontal"
android:paddingBottom="5dip">
<fragment
android:id="@+id/view_map"
android:name="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="match_parent"
android:layout_height="200dip" />
目前,如果我在碎片上向右滑动,它不会做任何事情。有人能告诉我我做错了什么吗?您的“OnSwipeListener”代码中有什么
看看安卓系统中的应用程序。它支持投掷动作,我认为这和你的滑动动作是一样的
尝试以下操作以获取视图大小:
@Override
protected void onSizeChanged(int xNew, int yNew, int xOld, int yOld){
super.onSizeChanged(xNew, yNew, xOld, yOld);
viewWidth = xNew;
viewHeight = yNew;
}
“OnSwipeListener”代码中有什么
看看安卓系统中的应用程序。它支持投掷动作,我认为这和你的滑动动作是一样的
尝试以下操作以获取视图大小:
@Override
protected void onSizeChanged(int xNew, int yNew, int xOld, int yOld){
super.onSizeChanged(xNew, yNew, xOld, yOld);
viewWidth = xNew;
viewHeight = yNew;
}
这是OnSwipeListener的代码,我怀疑您在设置之前获得了视图大小,换句话说,我怀疑它是0。我得到的视图大小不同,我将编辑我的答案。不,我得到的是正确的视图大小。如果我使用相同的代码而没有映射。它很好用。我认为map是如何吸收侦听器的。这是OnSwipeListener的代码,我怀疑您在设置它之前获得了视图大小,换句话说,我怀疑它是0。我得到的视图大小不同,我将编辑我的答案。不,我得到的是正确的视图大小。如果我使用相同的代码而没有映射。它很好用。我认为map是如何吸引听众的。