TextView와 Button이 포함 된 Activity 내부에 조각이 있습니다. Button을 클릭하면 다른 Fragment가로드되고 첫 번째 Fragment의 TextView 텍스트가 툴바의 제목이됩니다. Transition Framework 및 changeBounds와 같은 기능을 사용하여이 변경 사항에 애니메이션을 적용하고 싶지만 툴바의 전환을 설정하는 방법을 모르겠습니다. 누군가 나를 솔루션으로 안내 할 수 있습니까?조각 내 TextView에서 도구 모음의 제목으로 전환
0
A
답변
0
당신은 다음과 같이 텍스트 뷰의 텍스트 크기를 애니메이션을 사용자 정의 전환을 만들 수 있습니다
public class TextSizeTransition extends Transition {
private static final String PROPNAME_TEXT_SIZE = "lychmanit:transition:textsize";
private static final String[] TRANSITION_PROPERTIES = { PROPNAME_TEXT_SIZE };
private static final Property<TextView, Float> TEXT_SIZE_PROPERTY =
new Property<TextView, Float>(Float.class, "textSize") {
@Override
public Float get(TextView textView) {
return textView.getTextSize();
}
@Override
public void set(TextView textView, Float textSizePixels) {
textView.setTextSize(TypedValue.COMPLEX_UNIT_PX, textSizePixels);
}
};
public TextSizeTransition() {
}
public TextSizeTransition(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
public String[] getTransitionProperties() {
return TRANSITION_PROPERTIES;
}
@Override
public void captureStartValues(TransitionValues transitionValues) {
captureValues(transitionValues);
}
@Override
public void captureEndValues(TransitionValues transitionValues) {
captureValues(transitionValues);
}
private void captureValues(TransitionValues transitionValues) {
if (transitionValues.view instanceof TextView) {
TextView textView = (TextView) transitionValues.view;
transitionValues.values.put(PROPNAME_TEXT_SIZE, textView.getTextSize());
}
}
@Override
public Animator createAnimator(ViewGroup sceneRoot, TransitionValues startValues,
TransitionValues endValues) {
if (startValues == null || endValues == null) {
return null;
}
Float startSize = (Float) startValues.values.get(PROPNAME_TEXT_SIZE);
Float endSize = (Float) endValues.values.get(PROPNAME_TEXT_SIZE);
if (startSize == null || endSize == null ||
startSize.floatValue() == endSize.floatValue()) {
return null;
}
TextView view = (TextView) endValues.view;
view.setTextSize(TypedValue.COMPLEX_UNIT_PX, startSize);
return ObjectAnimator.ofFloat(view, TEXT_SIZE_PROPERTY, startSize, endSize);
}
}
TextView's
텍스트 크기를 변경하면 레이아웃의 경계가 애니메이션의 과정에서 변경됩니다 때문에 전환이 제대로 작동하려면 전환 ChangeBounds
을 TransitionSet
에 던지기 만하면됩니다. 대신에 수행해야 할 일은 SharedElementCallback
의 끝 상태에서 뷰를 수동으로 측정/레이아웃하는 것입니다.
관련 문제
- 1. 탭 내 조각 전환
- 2. 도구 모음의 색상은 동일한
- 3. 조각 모음의 TouchList보기
- 4. 조각 모음의 ProgressBar
- 5. ReportViewer 도구 모음의 I18n
- 6. 도구 모음의 UIActionSheet 디스플레이
- 7. 빌드 도구 모음의 NullPointerException
- 8. 도구 모음의 키보드 단축키
- 9. 도구 모음의 높이 변경
- 10. 조각 전환?
- 11. 조각 모음의 목록보기가 작동하지 않습니다.
- 12. 조각 모음의 작업 표시 줄
- 13. 세로 도구 모음의 하위 도구 렌더링
- 14. 전환 조각
- 15. 조각 전환
- 16. 도구 창 도구 모음의 분할 단추
- 17. 도구 모음의 매크로 - Office 2000
- 18. ReportViewer 도구 모음의 스타일 방법
- 19. 도구 모음의 아이콘이 투명하지 않습니다.
- 20. 도구 모음의 사용자 지정 컨트롤
- 21. 뒤로 버튼과 로고가있는 조각 모음의 ActionBar
- 22. 조각 전환 작업
- 23. 조각 간 전환
- 24. 도구 모음의 NSPopoverBehaviorSemitransient가있는 NSPopover가 닫히지 않습니다.
- 25. 탭 내의 조각 전환
- 26. 조각 모음의 컨텍스트 작업 표시 줄
- 27. 조각 전환 문제
- 28. 조각 모음의 이미지 갤러리가 작동하지 않습니다. (안드로이드)
- 29. 탐색 모음의 태그를 사용한 조각 비교
- 30. 안드로이드 - 조각 모음의 ListView가 표시되지 않습니다.