点击某个项目后,我想保持微调框下拉菜单打开。
它的默认行为是选中一个项目后将其关闭。相反,我希望它保持打开状态,以允许多次单击不同的项目而不关闭微调器。
function mouseOver() {
var myList = document.getElementsByClassName("helper");
myList.forEach(function(item){
item.style.display="block";
});
}
我不知道是否有特定的onClick / onSelection侦听器可以重写以防止微调器关闭。
我已阅读的大多数问题都讨论了如何动态刷新或关闭/打开微调框,但我希望它保持打开状态,并通过选择第一项或在活动时单击其外部使其闭合。
答案 0 :(得分:1)
您可以扩展Spinner类并重写PerformClick()方法,以便选择一个项目时,旋转器不会关闭。 例如:
public override bool PerformClick()
{
AlertDialog.Builder builder = new AlertDialog.Builder(Context);
//builder.SetItems(_items, this); or builder.SetMultiChoiceItems(_items, _selection, this);
builder.SetPositiveButton("OK", delegate { builder.Dispose(); });
builder.Show();
return true;
}
答案 1 :(得分:0)
如果有帮助,您可以扩展ArrayAdapter
并覆盖areAllItemsEnabled(): Boolean
以返回false。这样可以防止点击时关闭下拉菜单。
此外,如果要保留点击效果,可以覆盖getDropDownView()
来膨胀自定义布局并将其添加到自定义布局的根视图:
android:background="?android:attr/selectableItemBackgroundBorderless"
android:clickable="true"
android:focusable="true"
缺点是单击某个项目时不会触发AdapterView.OnItemSelectedListener
侦听器。一种解决方法是将单击侦听器添加到在getDropDownView()上放大的视图中