LayoutInflater でビューをインフレートします。膨張した RelativeLayout の背景色は、xml ファイルに設定されています。デバイスの 1 つで奇妙な問題が発生しました。(ランダムに) 背景色が、colors.xml の別の (間違った) 色であることがありました。以前にこの問題に遭遇した人はいますか?
詳細:
私は を持ってListView
いCursorAdapter
ます。次のコードを使用して、リスト項目を 1 つの静的項目のみで膨らませます (したがって、リサイクルの問題ではないと思います)。
@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
LayoutInflater vi = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE) ;
View v = vi.inflate(R.layout.bookmark_item, null) ;
//bindView(v, context, cursor) ;
Log.wtf("newView", "View color: " + Integer.toString(((ColorDrawable) (((RelativeLayout)v.findViewById(R.id.bookmark_row)).getBackground())).getColor())) ;
return v;
}
私のlayout/bookmark_item.xml
:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<RelativeLayout
android:id="@+id/bookmark_row"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/app_menu_item_background"
tools:ignore="UselessParent" >
<TextView
android:id="@+id/bookmark_item_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
</RelativeLayout>
</RelativeLayout>
内側の RelativeLayout の背景色は に設定されてい@color/app_menu_item_background
ます。この色は私の中にありますR.java
:
public static final int app_menu_item_background=0x7f0a0036;
という名前の色もあり@color/app_menu_item_colored_background
、コードの他の場所で使用していますが、ブックマーク リストやアダプターと共通するものはありません。には別のリソース ID もありますR.java
。
public static final int app_menu_item_colored_background=0x7f0a0038;
そして、それらの両方は異なる色です:
<color name="app_menu_item_background">#517409</color>
<color name="app_menu_item_colored_background">#f6efde</color>
次に、アプリを実行しているときに、ビューが間違ったapp_menu_item_colored_background
背景色を使用していることがあります (常にではありません)。膨張したビューの色をログに記録しました (上記のコードを参照)。
"newView" - "View color: -11439095"
"newView" - "View color: -593954"
#517409
最初の色は、2 番目の色は であることに注意してください#f6efde
。
奇妙なことに、Samsung Galaxy S3 mini という 1 つのデバイスでのみ、10 回の試行ごとに約 2 ~ 3 回エラーを再現できました。