Android 3.0では、「チェック済み」の概念は「アクティブ化された」背景を使用してレンダリングできます。これにより、リストフラグメントをタップしたときに表示される永続的なバーが表示され、リストの右側にフラグメントのコンテキストが提供されます(たとえば、Gmailでフォルダをタップすると、そのフォルダが強調表示され、別のリストフラグメントが開いて、そのフォルダ内の会話が表示されます。 )。
たとえば、フラグメントサンプルは次のようなものを示しています。
setListAdapter(new ArrayAdapter<String>(getActivity(),
android.R.layout.simple_list_item_activated_1, Shakespeare.TITLES));
そのリソース(android.R.layout.simple_list_item_activated_1
)はAndroid3.0の新機能です。それを「アクティブ化」するのは次のとおりです。
android:background="?android:attr/activatedBackgroundIndicator"
この属性値はAndroid3.0の新機能であり、以前のバージョンのAndroidで使用しようとすると、クラッシュする可能性があります。3.0 /大/風景の組み合わせの背景をこの魔法の値に設定し、それ以外の場合はスキップします。
これは、2つの別々のバージョンのレイアウトを用意することで実現できます。1つは-v11
リソースセットに、もう1つは通常のリソースセットにあります。ただし、レイアウトの大部分は同じであり、この1つの属性のみが含まれるかスキップされるため、これは私が望むよりも少しDRYが少なくなります。
ドローアブルリソースエイリアスを使用しようと試みたので、android:background
はエイリアスを参照でき、エイリアスは区別を処理し-v11
ますが、<bitmap>
ドローアブルは好きではないようですandroid:src="@null"
。
この問題にはスタイルとテーマのアプローチがあると思いますが、それらに頭を完全に巻き付けたことがないため(Androidの知識のギャップの1つ)、どうすればよいか完全にはわかりません。
誰かが3.0で「アクティブ化」を使用し、3.0より前ではそれをスキップするためのパターンを、個別のレイアウトを超えて考え出したことがありますか?
ありがとう!