Показать DialogFragment с анимацией - PullRequest
0 голосов
/ 01 февраля 2019

Как я могу показать DialogFragment с увеличением анимации, которая растет от точки щелчка?

Вот как я вызываю диалог из действия

DialogFragment dialog = new MyDialogFragment();
Bundle args = new Bundle();
// put arguments into the bundle
dialog.setArguments(args);
dialog.show(getSupportFragmentManager(), null);

ВотDialogFragment основной код

public class MyDialogFragment extends AppCompatDialogFragment{

Bundle mArgs;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    // remove the title space
    setStyle(AppCompatDialogFragment.STYLE_NO_TITLE, 0);

    mArgs = getArguments();
    // extract the values from the bundle
}

@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.dialog_add_edit_pool, container, false);
// find views by ids
// handle clicks and inputs
    return view;
}
}

Я пытался использовать следующий код в MyDialogFragment class , но он не работает

@Override
public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
    getDialog().getWindow().getAttributes().windowAnimations= R.style.MyCustomTheme;
}

In values\styles.xml

<style name="MyCustomTheme" parent="@android:style/Theme.Panel">
    <item name="android:windowAnimationStyle">@style/MyAnimation.Window</item>
</style>

<style name="MyAnimation.Window" parent="@android:style/Animation.Activity">
    <item name="android:windowEnterAnimation">@anim/anim_in</item>
    <item name="android:windowExitAnimation">@anim/anim_out</item>
</style>

В anim\anim_in.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<scale
    android:interpolator="@android:anim/linear_interpolator"
    android:fromXScale="0.0"
    android:toXScale="1.0"
    android:fromYScale="0.0"
    android:toYScale="1.0"
    android:fillAfter="false"
    android:startOffset="200"
    android:duration="200"
    android:pivotX = "50%"
    android:pivotY = "-90%"
    />
<translate
    android:fromYDelta="50%"
    android:toYDelta="0"
    android:startOffset="200"
    android:duration="200"
    />
</set>

В anim\anim_out.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<scale
    android:interpolator="@android:anim/linear_interpolator"
    android:fromXScale="1.0"
    android:toXScale="0.0"
    android:fromYScale="1.0"
    android:toYScale="0.0"
    android:fillAfter="false"
    android:duration="200"
    android:pivotX = "50%"
    android:pivotY = "-90%"
    />
<translate
    android:fromYDelta="0"
    android:toYDelta="50%"
    android:duration="200"
    />
</set>

Любое решение?

...