커스텀 에드트 텍스트를 만들었습니다. 터치이벤트를 받으면 이동이 가능하고 ATCTION_UP시에 수정이 가능하도록 만들었습니다. 그런데 에디트텍스트가 이동시 손 위치외에 다른 곳에서도 동시에 생겨 깜빡거리기도 하고 글자가 보이지 않습니다. 정확히는 어떨땐 보이고 어떨땐(색을 지정했을때)안보입니다. 그림자처럼 이전 경로에 또 다른 입력상자가 생기는게 아니라 어떤점이 문제인지 찾기가 힘듭니다어떻게 해결해야할까요? 커스텀 뷰안에 MOVE이벤트처리가 단순해서 그런걸까요?
public class table extends AppCompatActivity {
...변수선언부...
ArrayList<customEditText> ediList=new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...변수선언부...
customButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(menuScroll.getVisibility()==View.VISIBLE){
menuScroll.setVisibility(View.GONE);
}
customEditText customEditText=new customEditText(page.getContext());
customEditText.setLayoutParams(
new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
customEditText.setText("텍스트상자");
customEditText.setTextColor(0xFF0000);
page.addView(customEditText);
}
});
}
}
----------------------------public class customEditText extends AppCompatEditText {
static float positionX,positionY=0;
float lastX=-1;
float lastY=-1;
public customEditText(Context context) {
super(context);
}
public customEditText(Context context, AttributeSet attrs) {
super(context, attrs);
}
public customEditText(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
super.onTouchEvent(event);
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
setClickable(false);
return true;
case MotionEvent.ACTION_UP:
performClick();
return true;
case MotionEvent.ACTION_MOVE:
positionX = event.getX();
positionY = event.getY();
setX(positionX);
setY(positionY);
return true;
}
return false;
}
@Override
public boolean performClick() {
super.performClick();
setClickable(true);
return true;
}
}