비트맵버튼을 따로 만들었는데 거기서 클릭 이벤트할때 리니어 레이아웃에 애니메이션 동작을 취하게 해주려고 합니다.
아래가 비트맵 버튼 소스구요.
public class BitmapButton extends Button{
public BitmapButton(Context context) {
super(context);
init();
}
public BitmapButton(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
private void init(){
setBackgroundResource(R.drawable.background_selector);
setOnClickListener(new OnClickListener() {
boolean selected=true;
Animation anim;
LinearLayout layout_search = (LinearLayout)findViewById(R.id.layout_search);
@Override
public void onClick(View v) {
if(selected) {
setSelected(true);
anim = AnimationUtils.loadAnimation(getContext(), R.anim.translate_down);
layout_search.startAnimation(anim);
layout_search.setVisibility(View.VISIBLE);
selected =!selected;
}
else{
setSelected(false);
anim = AnimationUtils.loadAnimation(getContext(), R.anim.translate_up);
layout_search.startAnimation(anim);
layout_search.setVisibility(View.GONE);
selected =!selected;
}
}
});
}
}
빨갛게 색칠된 부분이 문제입니다. 파란색으로 색칠된 부분에서 아이디 값을 못 찾고 널포인트를 가리키길래
API를 봤는데, 버튼클래스에서 findviewbyid는 메인액티비티 소스와 다르게 자식 뷰의 아이디까지만 찾아주는 거 같습
니다. 그래서 널값이 되는거 같은데, 그럼 어떻게 해야 layout_search라는 아이디를 찾을 수 있을까요?