2012-08-13 15 views
0

美好的一天。帶有可繪製對象的視圖上的setOnClickListener

我有一個的LinearLayout bitmapBox中,我將繪製對象通過SandboxView類是這樣的:

LinearLayout myLayout = (LinearLayout) mRoot.findViewById(R.id.bitmapBox); 
View view = new SandboxView(this.getActivity(), bitmap); 
myLayout.addView(view); 

在父佈局我也有一個滾動視圖的水平,但我想以使其可見/通過觸摸畫布隱藏。我試圖這樣做:

view.setOnClickListener(new OnClickListener() { 
int x = 0; 

@Override 
public void onClick(View view) { 
    HorizontalScrollView myLayout = (HorizontalScrollView) mRoot.findViewById(R.id.hide); 
    if (x == 0) { 
    myLayout.setVisibility(1); 
    myLayout.setVisibility(View.GONE); 
    x = 1; 
    } 

    else { 
    myLayout.setVisibility(View.VISIBLE); 
    x = 0; 
    } 
} 
}); 

「視圖」不是在畫布上保存位圖的對象?因爲這不起作用。我不知道用什麼視圖來設置onClick監聽器,有什麼建議嗎?

回答

0

確保將佈局的clickable屬性設置爲true。

1

你onClickListener可以清理一點:

view.setOnClickListener(new OnClickListener() { 

    @Override 
    public void onClick(View view) { 
     // no need to cast to horizontalscrollview here since we are just setting visibility which is available to anything extending the View class. 
     View mView = mRoot.findViewById(R.id.hide); 
     if (mView == null) { 
      return; // do nothing 
     } else if (mView.getVisibility() == View.GONE) { 
      mView.setVisibility(View.VISIBLE); 
     } else if (mView.getVisibility() == View.VISIBLE) { 
      mView.setVisibility(View.GONE); 
     } 
    } 
}); 
相關問題