刷一些屏幕的一部分

我正在devise一个包含一些滑动部分的屏幕。 我有一个屏幕mapview,列表视图和一些文字。 我的地图查看是滑动的主要部分,如果我在左侧滑动,则会显示联系人,如果我向右滑动,则地址将显示。
这是我的形象。 我显示了我需要刷的圆angular部分。 在这里输入图像说明
我如何在我的应用程序中实现这个function。 我经历了一个教程,但它并没有帮助我。 本教程教如何全屏滑动,但我需要刷一些屏幕的一部分。
可能吗。 给我一些参考或提示。 我不明白viewPager

Related of "刷一些屏幕的一部分"

最后,我得到答案,刷一些屏幕的一部分。 在onCreate()你需要添加以下行

 MyPagerAdapter adapter = new MyPagerAdapter(); myPager = (ViewPager) findViewById(R.id.myfivepanelpager); myPager.setAdapter(adapter); myPager.setCurrentItem(3); 

我在我的课中扩展PagerAdapter类。

 private class MyPagerAdapter extends PagerAdapter { public int getCount() { return 3; } public Object instantiateItem(View collection, int position) { LayoutInflater inflater = (LayoutInflater) collection.getContext() .getSystemService(Context.LAYOUT_INFLATER_SERVICE); int resId = 0; switch (position) { case 0: resId = showHotelContact(); break; case 1: resId = showHotelAddress(); break; case 2: resId = showHotelMap(); break; } View view = inflater.inflate(resId, null); ((ViewPager) collection).addView(view, 0); return view; } } public int showHotelMap() { int resId; resId = R.layout.hotelmap; return resId; } public int showHotelAddress() { int resId; resId = R.layout.hoteladdress; return resId; } public int showHotelContact() { int resId; resId = R.layout.hotelcontact; return resId; } 

这是我的XML文件

 ?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <android.support.v4.view.ViewPager android:id="@+id/myfivepanelpager" android:layout_width="wrap_content" android:layout_height="186dp" android:fadingEdge="vertical" /> <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/hotelName" /> </LinearLayout> 

像这样创build一个类:

 public class OnSwipeTouchListener implements OnTouchListener { private final GestureDetector gestureDetector = new GestureDetector(new GestureListener()); public boolean onTouch(final View v, final MotionEvent event) { return gestureDetector.onTouchEvent(event); } private final class GestureListener extends SimpleOnGestureListener { private static final int SWIPE_THRESHOLD = 100; private static final int SWIPE_VELOCITY_THRESHOLD = 100; @Override public boolean onDown(MotionEvent e) { return true; } @Override public boolean onSingleTapConfirmed(MotionEvent e) { onTouch(e); return true; } @Override public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { boolean result = false; try { float diffY = e2.getY() - e1.getY(); float diffX = e2.getX() - e1.getX(); if (Math.abs(diffX) > Math.abs(diffY)) { if (Math.abs(diffX) > SWIPE_THRESHOLD && Math.abs(velocityX) > SWIPE_VELOCITY_THRESHOLD) { if (diffX > 0) { onSwipeRight(); } else { onSwipeLeft(); } } } else { // onTouch(e); } } catch (Exception exception) { exception.printStackTrace(); } return result; } } public void onTouch(MotionEvent e) { } public void onDown(MotionEvent e) { } public void onSwipeRight() { } public void onSwipeLeft() { } public void onSwipeTop() { } public void onSwipeBottom() { } } 

然后将OnSwipeTouchListener添加到您的MapView