为什么SwitchPreference在从开启切换到关闭时不显示动画,反之亦然?

8 xml android android-preferences android-animation

SwitchPreference为我的应用程序做了一个preferences.

问题是,SwitchPreference当我在打开和关闭之间切换时,它没有显示动画,而是在突然的混蛋中切换.

这是preferences.xml文件的代码:

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
    <SwitchPreference
        android:id="@+id/notification"
        android:key="notification"
        android:title="@string/notification"
        android:defaultValue="true"/>
</PreferenceScreen>
Run Code Online (Sandbox Code Playgroud)

我是初学者,所以请合作,让我知道这里有什么问题.

提前致谢.

Eri*_*ric 3

原因

我注意到一些不同的事情可能会导致我的对象的动画丢失SwitchPreference

  1. 如果这是设置活动中的SwitchPreference第一个。Preference

  2. 如果我扩展SwitchPreference并使用它(描述类似问题的帖子)。

修复

为了避免第一个问题,我创建了一个DummyPreference类,并将其用作第一个PreferencePreferenceScreen。下面的例子。

DummyPreference.java

public class DummyPreference extends Preference
{
    public DummyPreference(Context context,AttributeSet attrs)
    {
        super(context,attrs);
    }

    @Override
    public View getView(View convertView,ViewGroup parent)
    {
        View v = new View(getContext());
        v.setVisibility(View.GONE);
        return v;
    }
}
Run Code Online (Sandbox Code Playgroud)

pref_whatever.xml

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
    <com.exaple.DummyPreference/>
    <!-- other preference controls here -->
</PreferenceScreen>
Run Code Online (Sandbox Code Playgroud)

为了避免第二个问题,我不得不Preference在 XML 中使用 Android 的普通旧类,并将所需的任何额外逻辑移至对象ActivityFragment包含Preference对象中。

我知道这是一个旧帖子。我只是希望它将来可以帮助别人。