ListView をエレガントな外観にするためにスタイルを設定する方法はたくさんありますが、そのすべてでアダプターを変更したり、追加のコードを記述したりする必要があります。
Android 4.0 のリリースにより、残念ながら状況が変わりました。Google は Holo テーマを改良し、新しい外観にしました。すべてのアプリを同じように見せるために、すべての開発者がこれを使用することをお勧めします。
そして、ここに問題があります。Google は 4.0 を公開しましたが、古いバージョンの Android を使用している人がまだいます。以前のカスタム アプリケーション テーマをそのままにして Holo を使用することはできません。古いデバイスを使用しているユーザーのビジュアル エクスペリエンスが損なわれるからです。また、4.0 のユーザーに Holo の使用だけを強制することはできません。正直に言うと、Holo はまだ完璧ではないからです。
目標は、組み込みのテーマ システムを使用し、すべてのデバイスで見栄えのする Holo の代替案を準備することです。その後、 setTheme() だけで Holo とテーマを切り替えることができ、追加の問題はありません。残念ながら、それはそれほど単純ではありません。私たちは既存のテーマ システムの機能に制限されており、いくつかのことは実行が困難です。そして、ここに私の質問があります。
私が言及したすべてを考慮に入れると、ListView の外観をどのように制御できるのでしょうか? 方法がわかりません:
- 角が丸いリストを作成し、最初/最後の要素を選択するときにセレクターの背景がそれを台無しにしないようにします
- リストではなく、ヘッダーで区切られたセクション用に丸みを帯びた角を作成します。次のようになります。
このソリューションは、コードを追加することなく、PreferenceActivity によって作成された ListViews に影響を与えるはずです。すべてがテーマに含まれている必要があります。
<theme name="SampleTheme" parent="android:Theme">
...
</theme>
スタイルとテーマを使用しないソリューションを投稿しないようお願いします。それらは、ここスタック オーバーフローの別の質問で簡単に見つけることができます。
前もって感謝します。