Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用片段转换设置视图或按钮的动画?_Java_Android_Android Fragments - Fatal编程技术网

Java 如何使用片段转换设置视图或按钮的动画?

Java 如何使用片段转换设置视图或按钮的动画?,java,android,android-fragments,Java,Android,Android Fragments,我创建了一个包含5个片段的ViewPager。每个片段都有一个按钮。我想用片段转换旋转那个按钮。当我开始活动时,所有五个按钮都会旋转,所以我只看到第一个片段的按钮的旋转。这是我用于每个片段的代码: @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

我创建了一个包含5个片段的ViewPager。每个片段都有一个按钮。我想用片段转换旋转那个按钮。当我开始活动时,所有五个按钮都会旋转,所以我只看到第一个片段的按钮的旋转。这是我用于每个片段的代码:

        @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.quote_1, container, false);

        quoteOneShareButton = rootView.findViewById(R.id.q_one_share_btn);
        //code to rotate share btn with fragment transition:
        RotateAnimation rotateAnimation1 = new RotateAnimation(0, 360, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
        rotateAnimation1.setDuration(1500);
        rotateAnimation1.setInterpolator(new LinearInterpolator());
        quoteOneShareButton.startAnimation(rotateAnimation1);
        //end of rotation code
        return rootView;
    }

我希望每个按钮的动画仅在到达包含它的片段时启动。感谢您的帮助。谢谢大家。

这是因为所有5个片段几乎都是在同一时间创建的,所以您不应该在
onCreateView
中启动动画,而是在用户可以看到片段时启动动画

您可以通过在每个片段内调用
onResume
方法来实现这一点,但是必须在ViewPager适配器的构造函数中调用
BEHAVIOR\u RESUME\u ONLY\u CURRENT\u fragment
BEHAVIOR

@Override
public void onResume(){
    super.onResume();
    // animtion code..
}