ViewPager에 첨부 된 프래그먼트의 내용 (textViews 등)에 애니메이션을 적용하려고하면 애니메이션이 조각에서 프래그먼트로 이동할 때 좋습니다. 여기 지원 조각과 연결 방법에 내 코드, 응용 프로그램이 점심을 먹었다 문제가 제공 될 때 보여지는 단편 애니메이션도 필요ViewPager 및 기본 프래그먼트의 내용 애니메이트
내가 여기firstfragment
의 내용을 애니메이션하는 방법
firstanimation
를 추가하려고
private void initializeFrags() {
List<Fragment> ourlist = new Vector<Fragment>();
ourlist.add(Fragment.instantiate(this, FirstFrag.class.getName()));
ourlist.add(Fragment.instantiate(this, SecondFrag.class.getName()));
ourlist.add(Fragment.instantiate(this, ThirdFrag.class.getName()));
adapter = new ouradapter(super.getSupportFragmentManager(), ourlist);
ourPlace = (ViewPager) super.findViewById(R.id.mypager);
ourPlace.setAdapter(adapter);
// this method generates the errrors
firstAnimation();
ourPlace.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageSelected(int arg0) {
if(arg0==0)
{
View v = adapter.getItem(arg0).getView();
TextView text = (TextView) v.findViewById(R.id.firstText);
Animation fadeInAnimation = AnimationUtils.loadAnimation(MainActivity.this, R.anim.fade);
text.startAnimation(fadeInAnimation);
}
Toast.makeText(getApplicationContext(), Integer.toString(arg0), Toast.LENGTH_LONG).show();
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
// TODO Auto-generated method stub
}
@Override
public void onPageScrollStateChanged(int arg0) {
// TODO Auto-generated method stub
}
});
}
의 initializeFrags()
은 onCreate
동안 점심을 먹기 때문에 앱이 점심을 먹을 때만 실행됩니다. 여기
는 firstanimation
방법의 코드입니다
private void firstAnimation()
{
View v = adapter.getItem(0).getView();
TextView text = (TextView) v.findViewById(R.id.firstText);
Animation fadeInAnimation = AnimationUtils.loadAnimation(MainActivity.this, R.anim.fade);
text.startAnimation(fadeInAnimation);
}
와 나는 또한 조각에 애니메이션을 시도 오류,
12-08 21:45:33.102: E/Trace(29275): error opening trace file: No such file or directory (2)
12-08 21:45:33.333: E/AndroidRuntime(29275): FATAL EXCEPTION: main
12-08 21:45:33.333: E/AndroidRuntime(29275): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.worry.fragmentwithanimation/com.worry.fragmentwithanimation.MainActivity}: java.lang.NullPointerException
12-08 21:45:33.333: E/AndroidRuntime(29275): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2062)
12-08 21:45:33.333: E/AndroidRuntime(29275): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2087)
12-08 21:45:33.333: E/AndroidRuntime(29275): at android.app.ActivityThread.access$600(ActivityThread.java:133)
12-08 21:45:33.333: E/AndroidRuntime(29275): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1198)
12-08 21:45:33.333: E/AndroidRuntime(29275): at android.os.Handler.dispatchMessage(Handler.java:99)
12-08 21:45:33.333: E/AndroidRuntime(29275): at android.os.Looper.loop(Looper.java:137)
12-08 21:45:33.333: E/AndroidRuntime(29275): at android.app.ActivityThread.main(ActivityThread.java:4803)
12-08 21:45:33.333: E/AndroidRuntime(29275): at java.lang.reflect.Method.invokeNative(Native Method)
12-08 21:45:33.333: E/AndroidRuntime(29275): at java.lang.reflect.Method.invoke(Method.java:511)
12-08 21:45:33.333: E/AndroidRuntime(29275): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
12-08 21:45:33.333: E/AndroidRuntime(29275): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:556)
12-08 21:45:33.333: E/AndroidRuntime(29275): at dalvik.system.NativeStart.main(Native Method)
12-08 21:45:33.333: E/AndroidRuntime(29275): Caused by: java.lang.NullPointerException
12-08 21:45:33.333: E/AndroidRuntime(29275): at com.worry.fragmentwithanimation.MainActivity.firstAnimation(MainActivity.java:88)
12-08 21:45:33.333: E/AndroidRuntime(29275): at com.worry.fragmentwithanimation.MainActivity.initializeFrags(MainActivity.java:51)
12-08 21:45:33.333: E/AndroidRuntime(29275): at com.worry.fragmentwithanimation.MainActivity.onCreate(MainActivity.java:34)
12-08 21:45:33.333: E/AndroidRuntime(29275): at android.app.Activity.performCreate(Activity.java:5008)
12-08 21:45:33.333: E/AndroidRuntime(29275): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
12-08 21:45:33.333: E/AndroidRuntime(29275): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2026)
12-08 21:45:33.333: E/AndroidRuntime(29275): ... 11 more
가지고 :
TextView first;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.first, container,false);
first=(TextView) view.findViewById(R.id.firstText);
return view;
}
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
// TODO Auto-generated method stub
super.setUserVisibleHint(isVisibleToUser);
if(isVisibleToUser)
{
Animation fadeInAnimation = AnimationUtils.loadAnimation(getActivity(), R.anim.fade);
first.startAnimation(fadeInAnimation);
}
}
과 나는이있어 오류
12-08 23:05:38.541: E/AndroidRuntime(31143): FATAL EXCEPTION: main
12-08 23:05:38.541: E/AndroidRuntime(31143): java.lang.NullPointerException
12-08 23:05:38.541: E/AndroidRuntime(31143): at com.worry.fragmentwithanimation.FirstFrag.setUserVisibleHint(FirstFrag.java:34)
12-08 23:05:38.541: E/AndroidRuntime(31143): at android.support.v4.app.FragmentPagerAdapter.setPrimaryItem(FragmentPagerAdapter.java:130)
12-08 23:05:38.541: E/AndroidRuntime(31143): at android.support.v4.view.ViewPager.populate(ViewPager.java:1066)
12-08 23:05:38.541: E/AndroidRuntime(31143): at android.support.v4.view.ViewPager.populate(ViewPager.java:914)
12-08 23:05:38.541: E/AndroidRuntime(31143): at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1436)
12-08 23:05:38.541: E/AndroidRuntime(31143): at android.view.View.measure(View.java:15401)
12-08 23:05:38.541: E/AndroidRuntime(31143): at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:622)
12-08 23:05:38.541: E/AndroidRuntime(31143): at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:404)
12-08 23:05:38.541: E/AndroidRuntime(31143): at android.view.View.measure(View.java:15401)
12-08 23:05:38.541: E/AndroidRuntime(31143): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4950)
12-08 23:05:38.541: E/AndroidRuntime(31143): at android.widget.FrameLayout.onMeasure(FrameLayout.java:314)
12-08 23:05:38.541: E/AndroidRuntime(31143): at android.view.View.measure(View.java:15401)
12-08 23:05:38.541: E/AndroidRuntime(31143): at android.widget.LinearLayout.measureVertical(LinearLayout.java:855)
12-08 23:05:38.541: E/AndroidRuntime(31143): at android.widget.LinearLayout.onMeasure(LinearLayout.java:578)
12-08 23:05:38.541: E/AndroidRuntime(31143): at android.view.View.measure(View.java:15401)
12-08 23:05:38.541: E/AndroidRuntime(31143): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4950)
12-08 23:05:38.541: E/AndroidRuntime(31143): at android.widget.FrameLayout.onMeasure(FrameLayout.java:314)
12-08 23:05:38.541: E/AndroidRuntime(31143): at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2154)
12-08 23:05:38.541: E/AndroidRuntime(31143): at android.view.View.measure(View.java:15401)
12-08 23:05:38.541: E/AndroidRuntime(31143): at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:1856)
12-08 23:05:38.541: E/AndroidRuntime(31143): at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1104)
12-08 23:05:38.541: E/AndroidRuntime(31143): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1279)
12-08 23:05:38.541: E/AndroidRuntime(31143): at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1002)
12-08 23:05:38.541: E/AndroidRuntime(31143): at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4294)
12-08 23:05:38.541: E/AndroidRuntime(31143): at android.view.Choreographer$CallbackRecord.run(Choreographer.java:725)
12-08 23:05:38.541: E/AndroidRuntime(31143): at android.view.Choreographer.doCallbacks(Choreographer.java:555)
12-08 23:05:38.541: E/AndroidRuntime(31143): at android.view.Choreographer.doFrame(Choreographer.java:525)
12-08 23:05:38.541: E/AndroidRuntime(31143): at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:711)
12-08 23:05:38.541: E/AndroidRuntime(31143): at android.os.Handler.handleCallback(Handler.java:643)
12-08 23:05:38.541: E/AndroidRuntime(31143): at android.os.Handler.dispatchMessage(Handler.java:92)
12-08 23:05:38.541: E/AndroidRuntime(31143): at android.os.Looper.loop(Looper.java:137)
12-08 23:05:38.541: E/AndroidRuntime(31143): at android.app.ActivityThread.main(ActivityThread.java:4803)
12-08 23:05:38.541: E/AndroidRuntime(31143): at java.lang.reflect.Method.invokeNative(Native Method)
12-08 23:05:38.541: E/AndroidRuntime(31143): at java.lang.reflect.Method.invoke(Method.java:511)
12-08 23:05:38.541: E/AndroidRuntime(31143): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
12-08 23:05:38.541: E/AndroidRuntime(31143): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:556)
12-08 23:05:38.541: E/AndroidRuntime(31143): at dalvik.system.NativeStart.main(Native Method)
이 문제를 해결하여 활동이 시작될 때 표시되는 조각을 어떻게 애니메이션으로 만들 수 있습니까? 내가 몇 시간 봤어하지만 다른 질문에 나는 우리가 하나의 조각을 다른 것으로 바꿀 때만 애니메이션을 볼 수 있으며이 문제는 onPageSelected에 의해 처리된다. 당신은 단편 애니메이션 시도에서 잘못하고있다
onActivityCreated에서 애니메이션을 시작하려고하는 이유는 무엇입니까? – Snicolas
thx 많이, 네, 그것은 완벽하게 작동합니다;)하지만 나를 위해 그것을 사용자 (setUserVisibleHint) == 만든 (onActivityCreated), 유일한 쇼, 어떻게 내 지식이 불완전한 xD 나는이 대답을 귀하의 의견을 원인 표시 이 문제를 해결하다 – MyWay