2

SlidingDrawerはrequestLayout()とforceLayout()の呼び出しを無視しているようです。

レイアウトの下部にSlidingDrawerがあります。このSlidingDrawerには、android:handleとして設定されたシンプルなレイアウトがあります。このハンドルレイアウトにはImageViewがあり、この画像は時々変更する必要があります。

問題は、ImageViewの画像がすべて同じサイズではないことです。また、getWidth()呼び出しで正しい幅を報告するためにImageViewが必要です。setImageResource()を使用して表示された画像を変更すると、表示された画像は変更されますが、返される幅は元の画像であり、新しい画像ではありません。

調べてみると、画像を変更するとImageViewでrequestLayout()が暗黙的に呼び出されますが、その後onLayout()は呼び出されないことに気付きました。これは、階層全体に当てはまります。

SlidingDrawerを再レイアウトする必要がありますが、requestLayout()およびforceLayout()リクエストはすべて無視されます。どうやってやるの?

4

0 に答える 0