【问题标题】:Android spinner changing width causing drop down item to not displayAndroid微调器更改宽度导致下拉项目不显示
【发布时间】: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


    【解决方案1】:

    为 Android 尝试 Better Spinner 库。在这个库中,您不必使用 All Weeks 标记。它还有很酷的动画。

    BetterSpinner

    【讨论】:

      猜你喜欢
      • 2013-08-16
      • 1970-01-01
      • 2016-06-29
      • 2011-12-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多