2016-11-19 59 views
0

See problem in photo的Android按钮释放按下

我使用的选择和触摸监听器设置按钮在按下片段上MotionEvent.ACTION_DOWN。但是,当右键菜单调用按钮变得没有内片段pressed.This onTouch方法:

@Override 
public boolean onTouch(View view, MotionEvent motionEvent) { 
    if (motionEvent.getAction() == MotionEvent.ACTION_DOWN) { 
     switch (view.getId()) { 
      case R.id.buttonRow: 
       if (!buttonRow.isPressed()) { 
        buttonRow.setPressed(true); 
        buttonGrid.setPressed(false); 
        setLinearManager(); 
       } 
       break; 
      case R.id.buttonGrid: 
       if (!buttonGrid.isPressed()) { 
        buttonGrid.setPressed(true); 
        buttonRow.setPressed(false); 
        setGridManager(); 
       } 
       break; 
     } 
    } 
    return true; 
} 

XML片段,其中按钮位于:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
tools:context="com.example.boss.lesson5.fragments.RecyclerViewFragment"> 

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentStart="true" 
    android:layout_alignParentTop="true" 
    android:orientation="horizontal"> 

    <ImageButton 
     android:id="@+id/buttonRow" 
     android:layout_width="match_parent" 
     android:layout_height="60dp" 
     android:layout_weight="1" 
     android:adjustViewBounds="true" 
     android:background="@drawable/button_effect" 
     android:padding="15dp" 
     android:scaleType="centerInside" 
     android:src="@drawable/row" /> 

    <ImageButton 
     android:id="@+id/buttonGrid" 
     android:layout_width="match_parent" 
     android:layout_height="60dp" 
     android:layout_weight="1" 
     android:adjustViewBounds="true" 
     android:background="@drawable/button_effect" 
     android:padding="15dp" 
     android:scaleType="centerInside" 
     android:src="@drawable/grid" /> 
</LinearLayout> 

<android.support.v7.widget.RecyclerView 
    android:id="@+id/recycler" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentStart="true" 
    android:layout_marginTop="60dp" /> 

回答

1

尝试用这种模式工作:

myBtn.setOnTouchListener(new View.OnTouchListener(){ 
      @Override 
      public boolean onTouch(View v, MotionEvent event){ 
       if(event.getAction() == MotionEvent.ACTION_UP){ 

        //do stuff 
       } 
       else if(event.getAction() == MotionEvent.ACTION_DOWN){ 
        //do stuff 
       } 
       else if(event.getAction() == MotionEvent.ACTION_CANCEL){ 
        //do stuff 
       } 
      return true; 
      } 
     }); 
+0

没有帮助,当单击上下文菜单时,MotionEvent没有调用。 –