Android微调器更改宽度导致下拉项不显示

时间:2016-04-28 08:35:29

标签: android android-layout drop-down-menu width spinner

我有一个微调器,其中包含周数列表(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>

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:-1)

为Android安装更好的Spinner库。在此库中,您不必使用该All Weeks标记。它也有很酷的动画。

BetterSpinner