【发布时间】:2016-08-22 21:44:11
【问题描述】:
我有一个微调器,其中包含周列表 (1->52) 以及一个额外的“所有周”选项。当我选择周数时,例如“1”,微调器宽度会减小到显示“1”所需的大小。这在尝试再次选择“所有周”时会导致问题,因为微调器下拉宽度太小而无法显示“所有周”选项,导致它在顶部是一个空白条目。但是,您仍然可以选择空白条目,这样做会导致微调器按我的预期运行(其中宽度至少足以容纳“All Weeks”文本)。
有没有办法解决这个问题?我遇到了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>
【问题讨论】:
标签: android android-layout drop-down-menu width spinner