9

複数のボタンを持つ Android アプリケーション用のウィジェットを作成しています。ウィジェットのサイズに基づいて、ウィジェットのボタンの量を増減させたいと考えています。これは現在、4x1 ビューでどのように見えるかです: 4x1 ウィジェット

それを 3x1 に縮小すると、次のようになります。 3x1

3x1 ビューで 4 番目のボタンを動的に非表示にして、他の 3 つのボタンが押しつぶされないようにする方法はありますか? 2x1 または 1x1 の場合も同様です。これに関するご意見をいただければ幸いです。

ありがとう!

4

4 に答える 4

9

提案されたように、ウィジェット プロバイダーに実装する以外に方法はありonAppWidgetOptionsChangedません。残念ながら、API レベルが 16 未満のユーザーにはこの機能がありません。

ウィジェットが縮小したときにボタンを非表示にするには、Android Design サイトのパターン「 Widgets」(実際には appwidgets)で例として示されている天気ウィジェットと同様にウィジェットを動作させる必要があります。ウィジェットが縮小するにつれて表示されるボタンの数が減り、ウィジェットが大きくなるにつれて表示されるボタンが増えて、ボタンの可視性が設定されます。

ここに画像の説明を入力

ではonAppWidgetOptionsChanged、newOptions バンドルによって指定された値を使用して、幅と高さの変化を検出し、ドキュメントでアドバイスされているようにサイズ バケットを設定する必要があります (同じデザイン ページから)。

実際、ユーザーがウィジェットのサイズを変更すると、システムは、ウィジェットが再描画できる dp サイズ範囲で応答します。可変グリッド ディメンションではなく、「サイズ バケット」全体でウィジェットのサイズ変更戦略を計画すると、最も信頼できる結果が得られます。

本当に難しいのは、それらのバケットを決定する方法です。newOptions バンドルには、デバイス、画面密度、ランチャーなどによって大幅に異なる min_width、min_height、max_width、および max_height の値があります。残念ながら、Android チームはこれを行う方法を示していませんonAppWidgetOptionsChanged。それらの非常に単純です。

于 2013-10-29T22:20:03.957 に答える
4

バージョン 4.1 (API レベル 16) から、いくつかのサイズ変更パラメーターを含む Bundle を返す新しい関数 getAppWidgetOptions() があります。ここを参照してください。必要に応じてそれを使用できるかもしれませんが、4.1未満のバージョンには同様のオプションがありません.

于 2013-06-19T18:59:48.690 に答える