如何以编程方式关闭Android Spinner下拉列表

时间:2014-01-02 20:48:58

标签: android

我有一个场景,我在我的应用程序中使用微调器。一个make spinner下拉列表,使用“performclick()”方法直接打开。下拉列表已打开。有没有办法我可以自动关闭它或自动点击下拉列表中的项目,以便下拉列表被解除。

3 个答案:

答案 0 :(得分:1)

Borg8 的答案是唯一有效的解决方案!这是我添加回微调器的版本。

if (spinner.getParent() == null){
  parent.addView(spinner);
  spinner.setLayoutParams(params);
  spinner.forceLayout();
}

答案 1 :(得分:0)

Spinner没有公开任何明确关闭它的方法。如果setSelection()没有那种效果,那么您可能需要编写自己的小部件,以便更好地控制,或者避免尝试这样做。

答案 2 :(得分:0)

此解决方案对我有用,目前我还没有看到任何理由停止工作。

如果 spinner 是你的微调器,那么:

// get spinner layout and its parameters
ViewGroup parent = (ViewGroup)spinner.getParent();
ViewGroup.LayoutParams params = spinner.getLayoutParams();

// remove spinner from the layout - will dismiss its dropdown menu
parent.removeView(spinner);

// add spinner back and set same parameters
parent.addView(spinner);
spinner.setLayoutParams(params);

那是