提案されたように、ウィジェット プロバイダーに実装する以外に方法はありonAppWidgetOptionsChanged
ません。残念ながら、API レベルが 16 未満のユーザーにはこの機能がありません。
ウィジェットが縮小したときにボタンを非表示にするには、Android Design サイトのパターン「 Widgets」(実際には appwidgets)で例として示されている天気ウィジェットと同様にウィジェットを動作させる必要があります。ウィジェットが縮小するにつれて表示されるボタンの数が減り、ウィジェットが大きくなるにつれて表示されるボタンが増えて、ボタンの可視性が設定されます。
ではonAppWidgetOptionsChanged
、newOptions バンドルによって指定された値を使用して、幅と高さの変化を検出し、ドキュメントでアドバイスされているようにサイズ バケットを設定する必要があります (同じデザイン ページから)。
実際、ユーザーがウィジェットのサイズを変更すると、システムは、ウィジェットが再描画できる dp サイズ範囲で応答します。可変グリッド ディメンションではなく、「サイズ バケット」全体でウィジェットのサイズ変更戦略を計画すると、最も信頼できる結果が得られます。
本当に難しいのは、それらのバケットを決定する方法です。newOptions バンドルには、デバイス、画面密度、ランチャーなどによって大幅に異なる min_width、min_height、max_width、および max_height の値があります。残念ながら、Android チームはこれを行う方法を示していませんonAppWidgetOptionsChanged
。それらの非常に単純です。