Android setVisibility()第一次不起作用
我有一个叫做控制器的布局,里面有几个按钮等等 问题是在我的onTouch函数中,我想在一次单击时显示它,在另一次单击时隐藏它。现在,这项工作后,2接触。第一次触摸应该显示控制器,而下一次触摸应该使其消失。第一次和第二次触摸什么也不做,但在第三次触摸时它会工作。以下是此应用程序的相关功能Android setVisibility()第一次不起作用,android,android-layout,view,visibility,Android,Android Layout,View,Visibility,我有一个叫做控制器的布局,里面有几个按钮等等 问题是在我的onTouch函数中,我想在一次单击时显示它,在另一次单击时隐藏它。现在,这项工作后,2接触。第一次触摸应该显示控制器,而下一次触摸应该使其消失。第一次和第二次触摸什么也不做,但在第三次触摸时它会工作。以下是此应用程序的相关功能 public boolean onTouchEvent(MotionEvent event) { int eventx = event.getAction(); switch(eventx)
public boolean onTouchEvent(MotionEvent event)
{
int eventx = event.getAction();
switch(eventx)
{
case MotionEvent.ACTION_DOWN:
if(isLifted)
{
if(!isVisible)
{
Log.i("onTouch", "called showPuse menu");
isVisible = true;
isPaused = true;
showPauseMenu();
}
else if(isVisible)
{
hidePauseMenu();
isVisible= false;
}
isLifted = false;
}
break;
case MotionEvent.ACTION_UP:
if(!isLifted)
{
isLifted = true;
//Log.i("onTouchEvent", "Lifted");
}
}
return false;
}
/***************************************************
* Shows All Views needed to be shown
* Also pauses video and audio
*
* *************************************************/
private void showPauseMenu()
{
Log.i("showPauseMenu", "called");
playButton.setVisibility(View.VISIBLE);
Log.i("showPauseMenu", "plaButton visible");
bottomButtons.setVisibility(View.VISIBLE);
Log.i("showPauseMenu", "bottom Menu showed");
playButton.invalidate();
bottomButtons.invalidate();
pauseMedia();
}
/************************************************
* Hides Views that are part of Pause Menu
* Also starts video and audio back again
*/
private void hidePauseMenu() {
playButton.setVisibility(View.GONE);
bottomButtons.setVisibility(View.GONE);
playMedia();
}
有人能说出问题出在哪里吗?我已经看了这段代码好几天了,看不出它可能是什么。关于这段代码的几点建议: isLifted变量可能以false开头,在第一次触碰事件时,它不会导致down事件发生任何事情。当用户抬起手指时,变量被设置为true,这样第二个事件就可以实际处理了。这意味着第一次触摸将永远不会有任何可见的效果。 您使用的是isVisible布尔值,而不仅仅是检查组件本身的可见性。这使得它们很容易失去同步。
如果没有完整的类,这很难说,但我会研究这两点。在设计xml时,让小部件android:visibility=gone。在程序运行期间,检查其隐藏的onclick set View.VISIBLE和second touchView.GONE是否可见
我想这会管用的。试试看。这是java还是android?如果是这样的话,将其标记为这样可能会有所帮助。这是什么?JAVA是安卓的吗?添加语言和其他相关标签,人们可能会帮助你。android我忘了加上isLifted变量开头为true,所以这不是问题所在。另一个是。我想能见度是不同步的。我改为getVisibilty==View。现在它正常工作了,谢谢。