LWUIT:タブ-現在選択されているタブをマークする方法
-
29-10-2019 - |
質問
4つのタブがあります。各タブはボタンで表されます。これらのボタンは、現在表示されているタブを選択するために使用されます。各ボタンにはアイコンとテキストがあります。
対応するボタンの背景色とテキストラベルの色を変更して、現在選択されているタブを強調表示したいと思います。テーマとリソースエディタを使用して実行したいのですが。
テーマを作成し、UIID "Tab"に未選択、選択済み、およびプレス済みのスタイルを指定しました。私のタブはSunWTKで見栄えがします!いいね!しかし、実際の電話では、タブが常に選択されていないように見えることがわかりました。Nokia 5800XPressMusicとC7を試してみました。なぜ違いがあるのですか?
いくつかの実験の結果、理由がわかりました。ボタンは、選択されていない状態と押された状態の2つの状態しかない場合があります。選択された状態になることはありません。エミュレータで、ナビキーを使用してボタンに移動すると、ボタンが選択されます。
では、現在のタブをマークするにはどうすればよいですか?
解決 2
必要なものを実装しました。シャイと彼の例に感謝します。
テーマのプロパティを使用せず、コードですべてのカスタマイズを行いました。問題は、小道具を変更する必要のあるUIIDを特定することではなく、変更するボタンのスタイルを特定することであるため、一意のUIIDを設定することがどのように役立つかを理解できなかったためです。
私のソリューションに関するいくつかの重要な注意事項を以下に示します。
- タブに追加したボタンの後の
addActionListener
を呼び出します。 - いずれかのタブボタンが押されたら、タブボタンの UNSELECTED スタイルを更新します。また、アイコンを変更することもできます。
- 手順2の後にフォームの
repaint()
を呼び出します。
他のヒント
特に1.5では、いくつかの異なるアプローチを使用できます。
LWUIT 1.5にはTabsコンポーネントがあり、ほとんどすべてを実行し、非常に柔軟性があります。
メソッドsetToggleButton(true)
が呼び出されるラジオボタンを使用します。トグルボタンはラジオボタンのように機能するため、グループ内のボタンを押したままになり、トグルボタンスタイルを使用してレンダリングされます(UIIDは任意に設定できます)。LWUITデモのフォントデモ部分でトグルボタンを使用するサンプルを参照してください。
古いバージョンのLWUITで機能するオプションは、ボタンを押したときにボタンのUIIDを別の値に設定することです(以前に選択したボタンのUIIDを元の値に復元します)。