一部の要素が異なる方法でレンダリングされる理由がわかりません。これは、オンライン ステータスを変更するためのスピナーを配置した、エミュレートされた ActionBar です。ただし、スピナー内のテキストは、Desire HD (2.3.5) と Nexus 7 (4.2.2) では表示されますが、LG P990 (4.0.4) では現在のスピナー項目が表示されないため、実際の位置を作成しました。緑の四角で。
これは、テキストが読みやすいようにスピナーを少し操作するコードです。
IcsSpinner status = (IcsSpinner)content.findViewById(R.id.status);
OnlineAdapter adapter = new OnlineAdapter(status.getContext());
status.setAdapter(adapter);
status.setOnItemSelectedListener(new OnItemSelectedListener() {
public void onItemSelected(IcsAdapterView<?> parent, View v, int position, long id) {
TextView tv = (TextView)parent.getChildAt(0);
tv.setTextSize(12);
tv.setPadding(0, 0, 0, 0);
}
public void onNothingSelected(IcsAdapterView<?> parent) {
}
});
ところで、デフォルトの Spinner は上記のスニペットと同じように見えます。私は ActionBarSherlock のバック ポートを使用しています。
私は使用しようとしました:
tv.setPadding(0, -12, 0, 0);
ICS デバイスでは問題ないように見えますが、GB と JB ではあまり良くありません。
これの理由は何ですか?
位置を修正する必要があるかどうかをどのように検出できますか?