마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

커스텀 뷰를 동적생성한후 이동시키려는데 잘안됩니다..

0 추천

커스텀 에드트 텍스트를 만들었습니다. 터치이벤트를 받으면 이동이 가능하고 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;
}

}

안토니우스 (120 포인트) 님이 2020년 6월 22일 질문

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...