Еще одним вариантом решения Ашрафа было бы убедиться, что вы учитываете размеры экрана.Вам нужно будет включить спиннер в onCreate и настроить прослушиватель после того, как вы установите адаптер:
//set your adapter with default or custom spinner cell, then://
serverSpinner.setOnItemSelectedListener(spinnerSelector);
serverSpinner.setSelection(defaultServer);
Затем вы можете начать изменять размер текста представления, которое отображается до щелчка по спиннеру:
private AdapterView.OnItemSelectedListener spinnerSelector = new AdapterView.OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
boolean tabletSize = getResources().getBoolean(R.bool.isTablet);
boolean largeTablet = getResources().getBoolean(R.bool.isLargeTablet);
if (tabletSize) { ((TextView)parent.getChildAt(0)).setTextSize(16); }
else if (largeTablet) { ((TextView)parent.getChildAt(0)).setTextSize(18); }
else { ((TextView)parent.getChildAt(0)).setTextSize(12); }
}
public void onNothingSelected(AdapterView<?> parent) {
}
};
Все, что вам нужно сделать, это создать специальные папки макета, например:
values-sw360dp
values-sw600dp
values-sw800dp
и затем добавьте XML-файл с именем "bool.xml" в каждую из этих папок:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<bool name="isTablet">false</bool>
<bool name="isLargeTablet">false</bool>
</resources>