2016-04-28 2 views
0

У меня есть счетчик, который содержит список недель (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> 

enter image description here

enter image description here

ответ

0

Попробуйте лучшую библиотеку Spinner для Android. В этой библиотеке вам не нужно использовать тег All Weeks. Он также имеет классную анимацию.

BetterSpinner

 Смежные вопросы

  • Нет связанных вопросов^_^