特定の Android デバイスのスピナーに問題があります。項目をクリックしてもスピナーの位置が変わりません。
この問題は、Galaxy S2 (4.0.3 API 15) および Avvio 中国製デバイス (4.0.4 API 15) で発生しました。それぞれのログの動作は、次のように多少異なります。
アビオ:
I/InputDispatcher(234): channel '41c8acc8 PopupWindow:418f39c8 (server)' ~ abortBrokenDispatchCycle - notify=false
ギャラクシー S2:
I/InputDispatcher(1995): Delivering touch to current input target: action: 1, channel 'xxxx'
これが私のxml
構成です:
<Spinner
android:id="@+id/status_spinner"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="0dip"
android:paddingLeft="5dp"
android:layout_marginBottom="5dp" />
そして(削除された)コード:
Spinner status_spinner;
protected void onCreate(Bundle savedInstanceState) {
status_spinner = (Spinner)findViewById(R.id.status_spinner);
status_spinner.setOnItemSelectedListener(new OnItemSelectedListener(){
public void onItemSelected(AdapterView<?> arg0, View view, int position, long id) {
Log.d(TAG, "Selected status code " + position);
}
public void onNothingSelected(AdapterView<?> adapter){
Log.d(TAG, "Nothing selected");
}
});
}
これらのメッセージの後、何も起こらず、イベントは発生しません。ただし、スピナーが初期化されて最初のアイテムが選択されたときに発生する最初のスピナーイベントを取得していますが、その後は何もありません。
これは、API レベル 8 から最新のデバイスまで、他のデバイスでも機能します。私は本当にこれで立ち往生しています、手がかりはありますか?
解決済み:に設定された にスピナーが含まれLinearLayout
ていました。それを変更して問題を解決しました。android:animateLayoutChanges
true
false