0

良い一日。

次のような SandboxView クラスを介して描画可能なオブジェクトを配置する LinearLayout bitmapBox があります。

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 リスナーの設定に使用するビューがわかりません。何か提案はありますか?

4

2 に答える 2

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);
        }
    }
});
于 2012-08-13T15:13:48.480 に答える
0

レイアウトのクリック可能なプロパティを true に設定してください。

于 2012-08-13T14:55:13.780 に答える