我有一个微调器,其中包含周数列表(1-> 52)以及额外的“所有周”选项。当我选择周数时,例如'1',微调器宽度减小到显示'1'所需的大小。当尝试再次选择“所有周”时,这会导致问题,因为微调器下拉宽度太小而无法显示“所有周”选项,从而使其成为顶部的空白条目。您仍然可以选择空白条目,这样做会导致微调器按照我的预期运行(宽度至少足够宽的“全周”文本)。
有解决方法吗?我遇到了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>