2011-11-18 86 views
2

在这里,在这个代码中,我已经尝试了一些触摸屏事件如何使用按钮单击可见的隐藏布局?

@Override 
public boolean onTouchEvent(MotionEvent touchevent) { 

    switch (touchevent.getAction()) 
    { 
     case MotionEvent.ACTION_DOWN: 
     { 
      oldTouchValue = touchevent.getX(); 
      break; 
     } 
     case MotionEvent.ACTION_UP: 
     { 
      float currentX = touchevent.getX(); 
      if (oldTouchValue < currentX && panel.getVisibility() == View.VISIBLE) 
      {     
       panel.clearAnimation(); 
       panel.startAnimation(mAnimHide); 
       panel.setVisibility(View.INVISIBLE); 

      } 
      if (oldTouchValue > currentX && panel.getVisibility() == View.INVISIBLE) 
      { 
       panel.setVisibility(View.VISIBLE); 
       panel.startAnimation(mAnimShow); 
      } 
     break; 
     } 
    } 


    return false; 
} 

//当我试图将低于其不工作

public void onClick(View v) { 
    switch(v.getId()) 
    { 
    case R.id.onClick: 
    } 
    if(panel.getVisibility()==View.INVISIBLE) 
    { 
     panel.setVisibility(View.VISIBLE); 
     panel.startAnimation(mAnimShow); 
    } 
} 

,当我试图将不得不作出隐藏布局可见的按钮单击 该程序不响应。我已经尝试过了。

任何人都可以帮我吗?我们应该如何让行动事件发挥作用?

+1

只是一个提示..使用panel.isShown()而不是比较可见性。 – SERPRO

+0

尝试在你的if块中放入'Log.d()'来检查应用程序是否到达 – Vladimir

+0

我已经尝试在我的代码中使用Log。()时它执行View.INVISIBLE它正在返回 Java空点错误 - – Pradeepraj

回答

0

而不是View.INVISIBLE使用面板类。 例如,如果面板是TextView的实例:

if(panel.getVisibility()==TextView.INVISIBLE) 
    { 
     panel.setVisibility(TextView.VISIBLE); 
     panel.startAnimation(mAnimShow); 
    } 
+1

VISIBLE常量是从'View'继承的,所以它不会改变任何东西 – Vladimir

+0

我希望可见的My Layout命名(面板)为可见和不可见模式查看..你能帮我在这? – Pradeepraj

1

尝试使用ID,而不是R.id.onClick的实际INT。所以,如果你给按钮的ID为30,例如,使用case 30: ...

0
case R.id.title_call_button: 
if(llButtonCallNow.getVisibility() != View.VISIBLE){ 
llButtonCallNow.setVisibility(View.VISIBLE); 
} 
    else{ 
    llButtonCallNow.setVisibility(View.GONE); 
    } 
break;