私は週のリスト(1-> 52)と追加の「すべての週」オプションを含むスピナーを持っています。これまで「1」などの週番号を選択すると、スピナーの幅が「1」を表示するのに必要なサイズに減少します。これは、スピナーのドロップダウン幅が小さすぎて「All Weeks」オプションを表示できないため、「All Weeks」を再度選択しようとすると問題が発生し、上部に空白のエントリが表示されます。しかし空白の項目を選択することもできます。そうすることで、スピナーが期待通りに動作します(幅は少なくとも「すべての週」のテキストの幅になります)。Androidスピナーの幅を変更するとドロップダウンアイテムが表示されない
方法はありますか?私はandroid:dropDownWidth
アトリビュートに行きました。このアトリビュートを100dp
に設定すると、この問題は解決します。 wrap_content
に設定すると、属性がない場合と同じ動作が表示され、これが理想的です。私はAPI 23(6.0)と22(5.1)でテストしましたが、どちらも同じ問題があります。
私はこの問題を持っている基本的な新しいアクティビティを設定している、との関連スピナーコードは次のとおりです。
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
protected void onResume() {
super.onResume();
Spinner spinner = (Spinner) findViewById(R.id.spinner);
ArrayAdapter<CharSequence> arrayAdapter = ArrayAdapter.createFromResource(this, R.array.week_spinner_array, android.R.layout.simple_spinner_item);
arrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(arrayAdapter);
}
スタイルのxml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="16dp" >
<Spinner
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/spinner" />
</RelativeLayout>