検索

ホームページ  >  に質問  >  本文

android - スライドイベントを使用して ViewGrounp をカスタマイズするときにグラフィックスの 1 つの位置を修正するにはどうすればよいですか?

インジケーターを備えた多くの ViewPager コントロールは RelativeLayout を継承し、プロキシ ViewPager メソッドを通じて ViewPager# として偽装していることがわかりました。 #、indicator がこの ViewPager にオーバーレイされます。 これは少し面倒だと思います。
ViewPager を継承して、onDrawcanvas を介して インジケーター を自分で描画したかったのですが、自分が若すぎることがわかりました。 indicator描画すると、ViwePageritem 0 (項目 0 の上にあるように見えます)、ViewPager## にレイアウトが表示されます。 #スライドするとインジケーターも動きました。

上の図に示すように、

インジケーター

が続きました。次に、getLocationOnScreen() で取得したものを使用して、indicatorx 座標 onDraw で処理させます。それは機能しないことが判明しました。 この場合、私が考えることができる唯一のことは、他のものと同じように、

ViewPager

の外側に RelativeLayout のレイヤーをラップすることです (もちろん、FrameLayout だと思います)優れている)# ## しかし、この方法でコントロールを扱うのには少し抵抗があります。1 つの View

では解決できず、3 つの

View をネストする必要があります。 ViewGounpコントロール内のスライド コンテンツを処理しているときに、特定のコンテンツが同時に移動しないようにする方法はありますか? この質問を投稿する前に、ViewPager

のオフセットを監視してから、

onDraw でコンテンツを逆方向に継続的に移動する必要があるのではないかと考えていました。試してみます

代言代言2698日前1114

全員に返信(1)返信します

  • 習慣沉默

    習慣沉默2017-06-30 09:59:14

    私はonScrollChanged() 获取了偏移量,然后在onDraw()を監視し、問題を解決するためにこのオフセットを追加しました。

    しかし、onDrawindicator会被ViewPagerのコンテンツが上書きされていることがわかりました~~この解決策はまだ機能しません! !助けてください

    返事
    0
  • キャンセル返事