リストアイテムの背景色が交互になるストライプのAndroidListViewを作成できたと思いました。Theme.Holo.Lightをアプリケーションのテーマとして使用すると(マニフェストで)完全に機能します。ただし、カスタムの背景色を使用してアプリのカスタムテーマを定義すると、ストライプが消え、単一の背景色に置き換えられました。私のテーマで定義されています。 getView()のsetBackgroundColor()でカスタムテーマの背景色を上書きできないのはなぜですか?この問題を解決するにはどうすればよいですか? ありがとう!
更新:アプリケーションの背景がビューの背景の前にレンダリングされていることに気づきました!(また、レイアウトのProgressBarの前で、完全に隠されています。)@ color / background_colorを完全に透明に設定すると、縞模様が透けて見えます。では、問題は、なぜ私のテーマの背景がいくつかのビュー/背景の前にレンダリングされるのかということです。
テーマ:
<style name="Basic">
<item name="android:textColor">#000000</item>
<item name="android:background">@color/background_color</item>
</style>
getView():
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LinearLayout itemView;
Resources res = getResources();
int[] colors = new int[] {res.getColor(R.color.list_stripe_1),res.getColor(R.color.list_stripe_2)};
if (convertView == null){
itemView = new LinearLayout(getContext());
String inflater = Context.LAYOUT_INFLATER_SERVICE;
LayoutInflater viewInflater;
viewInflater = (LayoutInflater)getContext().getSystemService(inflater);
viewInflater.inflate(resource, itemView, true);
} else {
itemView = (LinearLayout) convertView;
}
////Omitting code for populating TextViews..
itemView.setBackgroundColor(colors[position%colors.length]);
return itemView;
}