gpt4 book ai didi

android SeekBar - 删除焦点丢失

转载 作者:行者123 更新时间:2023-11-30 04:20:16 29 4
gpt4 key购买 nike

我正在创建一个简单的应用程序,它在顶部显示一个带有菜单的 GridView 。单击其中一个菜单按钮时,会在其正下方的 View 上放置一个搜索栏。然后用户可以移动 slider 来更改 gridview 中项目的大小。我可以很好地处理那部分,问题是在试图摆脱搜索栏时出现的。我需要一种方法来找出搜索栏何时失去焦点。我尝试使用 setOnFocusChangeListener 但它似乎从未被调用过。部分代码如下

public class MainActivity extends Activity implements OnFocusChangeListener {
SeekBar seek;

public boolean onOptionItemSelected(MenuItem item) {
if(item.getId() == R.id.menu_grid_size)
{
if(seek != null) {
seek = new SeekBar(this);
seek.setOnFocusChangeListener(this);
...
layout.addView(seek, layoutparams);
} else {
layout.removeView(seek);
seek = null;
}
}
}

public void onFocusChange(Viewv, boolean hasFocus) {
layout.removeView(seek);
}

}

一切正常,除了当我滚动列表时搜索栏仍然可见。也许这不是做我想做的事情的最佳方式,任何帮助将不胜感激。

编辑:我修改了上面的代码以修复当您点击按钮两次时出现的错误。

最佳答案

所以我认为找到了一个我认为效果很好的解决方案。由于我使用的是搜索栏,因此我使用 onStopTrackingTouch() 方法来确定用户何时抬起手指,并将其用作何时移除 slider 的指示器。

public void onStopTrackingTouch(SeekBar seekBar) {
if(seekBar != null){
layout.removeView(seekBar);
seekBar = null;
}

关于android SeekBar - 删除焦点丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9366730/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com