У меня есть счетчик, который содержит список недель (1-> 52) плюс дополнительный вариант «Все недели». Когда я выбираю номер недели, например «1», ширина счетчика уменьшается до размера, необходимого для отображения «1». Это вызывает проблемы при попытке снова выбрать «Все недели», так как ширина раскрывающегося списка счетчика слишком мала для отображения опции «Все недели», в результате чего она является пустой записью вверху. Тем не менее, вы все равно можете выбрать пустую запись, и это приводит к тому, что счетчик будет действовать так, как я ожидал бы (ширина ширины, по меньшей мере, достаточно широкая для текста «Все недели»).Изменение ширины прядильника 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>