-
[안드로이드] 버튼 터치 이벤트 막기안드로이드(java)/UI 관련 2018. 11. 5. 15:34
커스텀 캘린더를 구현하는중에 새로운 난관을 만나게 되었습니다.
현재 보이는 부분에 이전 달과 다음 달이 보이도록 구현했는데
이번달에 해당하는 부분만 터치가 되도록 해야만 하는 상태가 되었네요.
ui는 이렇게 만들었습니다.
자바 소스쪽에는 GridView를 이용하였고, BaseAdapter를 상속 받아서 ViewHolder와 함께 구현 했습니다.
저번달에 해당하는 28, 29, 30, 31 과 다음달에 해당하는 1일이 터치 안되도록 해야하는데...
어떻게 해야할까 고민을 해보니까 별거 없을것 같더라구요.
회색으로 나타나도록 한 아이템 부분의 클릭 이벤트를 막아버리면 될 것 같았어요.
if (position < size || position >= size1) {
holder.tvItemGridView.setTextColor(getResources().getColor(android.R.color.darker_gray));
// 터치 이벤트 막기
holder.itemLinear.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
return true;
}
});
}---------------------------------------------------------------------------------------------------------------------
size 에는 ArrayList로 만든 이전달의 사이즈 값이, size1 에는 다음달의 사이즈 값이 들어있습니다.
tvItemGridView는 달력의 숫자가 나타나는 TextView부분입니다.
itemLinear는 LinearLayout의 id 값 입니다.
GridView를 이용해서 구현 한 상태입니다.
---------------------------------------------------------------------------------------------------------------------
itemLinear의 setOnTouchlistener를 true로 반환해주면 더이상 해당 레이아웃 부분에 터치가 되지 않게 됩니다.
이번 내용은 여기까지 입니다.
'안드로이드(java) > UI 관련' 카테고리의 다른 글
[안드로이드] 화면 고정, 세로 화면, 가로 화면 설정하기 (0) 2019.05.25 [안드로이드] EditText 글자수 초과 경고 띄우기 (1) 2018.11.13 [안드로이드] 다이얼로그 사라질 때 라디오버튼 체크 해제하기 (0) 2018.11.06 [안드로이드] gridView 설정 관련 (0) 2018.10.29 [안드로이드] linearlayout 정렬에 관해서 (내용 정리중) (0) 2018.10.29