android - 为什么 ObjectAnimator setDuration 不起作用?

标签 android animation objectanimator

我正在尝试使用 ObjectAnimatorRelativeLayout 移动到 Fragment 内的左侧。

方法setDuration根本不会改变持续时间。

我不是在寻找setStartDelay()方法

位置正在即时更改:

RelativeLayout layoutConfig2 = (RelativeLayout) rootView1.findViewById(R.id.layoutListConfig2);
ObjectAnimator pullLeft = ObjectAnimator.ofFloat(layoutConfig2, "translationX", 0f, -600f);
pullLeft.setDuration(4000); // ?
pullLeft.start();

这是我完整的onCreateView:

@Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {

        View rootView1 = inflater.inflate(R.layout.params_config, container, false);

        ListView listConfiguracoes = (ListView) rootView1.findViewById(R.id.list1_configParameters);
        ListView listMotor = (ListView) rootView1.findViewById(R.id.list_motor1);
        final RelativeLayout layoutConfig1 = (RelativeLayout) rootView1.findViewById(R.id.layoutListConfig);
        final RelativeLayout layoutConfig2 = (RelativeLayout) rootView1.findViewById(R.id.layoutListConfig2);

        menutitles = getResources().getStringArray(R.array.array1_config);
        menuIcons = getResources().obtainTypedArray(R.array.arrow_icons);

        rowItems = new ArrayList<RowItem>();
        for (int i = 0; i < menutitles.length; i++) {
            RowItem items = new RowItem(menutitles[i], menuIcons.getResourceId(
                    i, -1));
            rowItems.add(items);
        }


        adapter = new CustomAdapter(getActivity(), rowItems, 2);
        listConfiguracoes.setAdapter(adapter);
        listMotor.setAdapter(adapter);
        layoutConfig2.setVisibility(View.VISIBLE);


        listConfiguracoes.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

                Animation slide1, slide2;
                slide1 = AnimationUtils.loadAnimation(getActivity(), R.anim.move_left_slightly);
                slide2 = AnimationUtils.loadAnimation(getActivity(), R.anim.move_left_fast);


                switch (position) {
                    case 0:

                        layoutConfig1.startAnimation(slide1);

                        ObjectAnimator pullLeft = ObjectAnimator.ofFloat(layoutConfig2, "translationX", 0f, -600f);
                        pullLeft.setDuration(4000); // ?
                        pullLeft.start();

                        break;
                }
            }
        });


        return rootView1;

    }

如何修复它?

最佳答案

我知道这有点晚了,但万一有人遇到这个线程: 尝试开发者选项下的“动画师持续时间比例”。当我的被禁用时,我遇到了这个问题。

关于android - 为什么 ObjectAnimator setDuration 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30779741/

相关文章:

javascript - raphaelJS 2.1 沿路径设置动画

c# - 如何在不丢失原始颜色轨迹的情况下使背景颜色动画为新颜色并返回?

java - Android ObjectAnimator 与 ViewPropertyAnimator

android - 在 Android Chrome 中,Web Speech API TTS 无法正常工作 - 未调用边界事件函数

android - 出现错误,例如 APK META-INF/LICENSE 中复制的重复文件

java - 将我的应用程序连接到 SQLite 数据库 - 如何?

android - 在android 2.3之前的平台上如何使用android 4.0新增的Animator框架?

android - 将文件保存到内部存储

css - 在 redux 中添加动画

java - Android图像淡入淡出动画