ScrollView와 EditText가있는 RelativeLayout이 있고 사용자가 EditText로 포커스를 이동하면 ScrollView가 끝날 때까지 자체를 숨기려고합니다. 그 부분은 쉬웠지만, RelativeLayout을 열고/닫을 필요없이 점진적으로 축소/확대하여 좋은 전환을 제공하고 싶습니다.RelativeLayout에 애니메이션을 적용하여 내용이 변경된 경우 크기를 변경하려고합니다.
개인 클래스 myCostBoxFocusListener가 {
public void onFocusChange(View v, boolean hasFocus) {
ScrollView sView = (ScrollView) ((RelativeLayout)v.getParent().getParent()).getChildAt(1);
//A bit hacky, I know, but it works.
if (hasFocus) {
sView.setVisibility(View.GONE);
}
else if(!hasFocus) {
sView.setVisibility(View.VISIBLE);
}
}
}
View.OnFocusChangeListener를 구현하고 이것이 잘 작동 : 여기
은 글고 향상에 포커스 때있는 ScrollView를 숨 깁니다 코드입니다. 그러나, 내가 열거 나 닫는 것을 움직이려고 노력하면서 함께 묶은 코드가 작동하지 않습니다. 현재 RelativeLayout이 여전히 열리거나 닫히는 동안 ScrollView 항목이 2 초 동안 페이드 인/아웃됩니다.LayoutTransition transition = new LayoutTransition();
ObjectAnimator a1 = ObjectAnimator.ofFloat(null, View.SCALE_Y, 0, 1);
AnimatorSet animator = new AnimatorSet();
animator.setStartDelay(0);
animator.play(a1);
transition.setAnimator(LayoutTransition.CHANGE_APPEARING, animator);
transition.setAnimator(LayoutTransition.CHANGE_DISAPPEARING, animator);
transition.setDuration(2000);
RelativeLayout rView = (RelativeLayout) dialogNew.findViewById(R.id.ocrmain_group_select_parent);
rView.setLayoutTransition(transition);
내가 대신 CHANGE_ 사라지는/LayoutTransition_APPEARING를 사용하여 시도했지만, 그게 내가 원하는 애니메이션을하지 않습니다. 나는 분명히 개념을 여기에서 놓치고 있고, 내가 이것을 틀리게 개념화하고있는 방법에 대한 약간의 포인터를 크게 고맙게 생각할 것이다.
. 확장/계약 기간을 어떻게 설정합니까? – mikeappell
http://developer.android.com/reference/android/view/ViewGroup.html#setLayoutTransition(android.animation.LayoutTransition)을 살펴보십시오. 이 기본 전환을 수정하려면't = getLayoutTransition()','t.setDuration (CHANGE_DISAPPEARING, duration)','setLayoutTransition (t)'을 할 수있을 것입니다. – mpkuth
자, 문제는 다음과 같습니다. 실제로 움직이는 것은 사라지는/다시 나타나는 버튼입니다. 그것들이 들어있는 창은 여전히 크기가 순간적으로 변하고 있습니다. 어떻게 든 잘못된 개체로 전환을 적용하고 있습니까? – mikeappell