2

私のアプリでは、下部に画像とリストビューを含むアクティビティがあります。以下は、アクティビティで行うべきことです。

1. the image view at the top of the page must be of swipe type to show other images.
2. when the list view gets scrolled the image must get moved along with it.
3. in the same activity i have a button, when the button is clicked the image must be switcher over to be a mapview.

私がやったことは、

1. I have the image view and mapview in view switcher of a separate layout named as header
2. The header layout is been added in the list view header part.

これで、リストビューがスクロールされている間、ヘッダー部分も一緒にスクロールされます。ビューが切り替わるのと同じように、画像ビューとマップビューを切り替えることができます。しかし、地図は固定されているようで、移動してさまざまなポイントを見ることができません

リストビューヘッダーのマップビュー内を移動する方法。

4

1 に答える 1

0

これは例ですが、解決策ではありません。この例では、x 方向にスクロールすると false を返すカスタム スクロールビューを作成しました (イベントが処理されておらず、次のビューに渡す必要があることを示します)。

public class CustomScrollView extends ScrollView {
    private GestureDetector mGestureDetector;
    View.OnTouchListener mGestureListener;

    public CustomScrollView(Context context, AttributeSet attrs) {
        super(context, attrs);
        mGestureDetector = new GestureDetector(new YScrollDetector());
        setFadingEdgeLength(0);
    }

    @Override
    public boolean onInterceptTouchEvent(MotionEvent ev) {
        return super.onInterceptTouchEvent(ev) && mGestureDetector.onTouchEvent(ev);
    }

    // Return false if we're scrolling in the x direction  
    class YScrollDetector extends SimpleOnGestureListener {
        @Override
        public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
            if(Math.abs(distanceY) > Math.abs(distanceX)) {
                return true;
            }
            return false;
        }
    }
}

ビュースイッチャーの特定の領域で同様のことを行う必要があります。そのため、基本的なビュースイッチャー コンポーネントを変更して、独自のバリアントを作成する必要があります。

上記の提案に代わるものとして、私はそれをしないことを検討します。マップを使用しているアプリを見ると、これは実際には正常な動作ではなく、非常にスムーズに実行されるか、ユーザーとのやり取りがうまくいくとは思えません。一般に、マップはできるだけ多くのスペースを確保したときに最適に機能します。Google ナビゲーション、Google マップ、Google Latitude、Yelp などの基本的な地図アプリを見てみましょう。

于 2012-12-05T05:22:12.990 に答える