3

ImageViewへの呼び出しによる基本的なスクロールをサポートするカスタムを作成しView.scrollBy()ましたGestureDetector。スクロール境界に到達したことに関するフィードバックを追加したかったので、次の方法でフェードを有効にしました。

setVerticalFadingEdgeEnabled(true);
setHorizontalFadingEdgeEnabled(true);

しかし、フェードは上端と左端でのみ期待どおりに機能し、下端と右端はフェードしません。ビューの高さと幅が fill_parent に設定されているため、これらのエッジが画面からはみ出していないことは確かです。では、何が問題なのですか?


編集: 垂直/水平フェード エッジのみを有効にすると、上/左エッジのみが描画されることが確認されます。今、私はView.java (6870 以降)を読み込もうとしています...

4

2 に答える 2

4

カスタムビューで動作するようにそれらをオーバーライドしなかったという事実に、getBottomFadingEdgeStrength()問題があるようです。getRightFadingEdgeStrength()

これらの保護されたメソッドはdraw()、いつフェードを描画するかをビューに伝えます (そして、どれだけ強く -ScrollViewスクロール制限に近づいたときに a が何をするかを見てください)。

上端と左端については0、両方の場合に制限があり、デフォルトの実装が (オン/オフの方法で) 機能するため簡単ですが、他の 2 つの場合は、独自のスクロール境界を考慮してメソッドをオーバーライドする必要があります (ケース、描画可能な寸法)。

于 2011-01-17T22:18:02.637 に答える