Выпадающий размер блесны - PullRequest
       16

Выпадающий размер блесны

0 голосов
/ 10 октября 2019

Cities list has around 400 items and maximum size of spinner is 400dp but it is showing only one item as you see in the image.PS:It is not the case everytime.sometimes it is showing maximum size. Я динамически заполняю счетчик, основываясь на ответе от предыдущего выбранного элемента. Хотя размер списка больше 1, размер выпадающего меню иногда показывает только один элемент (работает ползунок)). Это происходит не каждый раз. Иногда он показывает максимальный размер, а иногда нет.

Максимальный размер выпадающего меню - 400dp.

<com.jaredrummler.materialspinner.MaterialSpinner
                android:id="@+id/spinnerCollege"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="5dp"
                app:ms_dropdown_max_height="400dp"
                app:ms_background_color="@color/offWhite"/>

new CityPresenter().getCities(new OnEntitiesReceivedListener<City>(this) {
            @Override
            public void onReceived(final List<City> cities) {
                UpdateProfileActivity.this.cities = cities;
                final List<String> cityNames = new ArrayList<>();
                for(City city : cities){
                    cityNames.add(city.getName());
                }
              //  Collections.sort(cityNames);
                Log.d(TAG,cityNames.toString());
                cityNames.add(0,"Select City");
                citySpinner.setItems(cityNames);
}
}

Ожидается, что в выпадающем списке будет отображаться более одного элемента, но будет показан только один элемент.

1 Ответ

0 голосов
/ 10 октября 2019

Я не знаю, как вы настроили свой адаптер, но обычно так работают динамические счетчики.

Спиннер динамического списка

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    // Get reference of spinner from XML layout
    Spinner spinner = findViewById(R.id.mySpinnerId);
    //Using this button to trigger spinner list change
    Button myButton=findViewById(R.id.myButtonId);

     final List<String> myArrayList= new ArrayList<>();
     myArrayList.add("Some String");
     myArrayList.add("Some Other String");
     //And....so on

     final ArrayAdapter<String> adapter = new ArrayAdapter<>(this,
            android.R.layout.simple_spinner_item,myArrayList);
     adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
     spinner.setAdapter(adapter);

     //Triggering the spinner list change using a button
     myButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
        myArrayList.add("New Item");
        adapter.notifyDataSetChanged();

        }

}}

Надеюсь, это поможет вам выявить и устранить проблему.

...