相关疑难解决方法(0)

在解雇之前更改DialogFragment进入/退出转换

我有一个DialogFragment,我在onActivityCreated方法中为进入/退出设置动画,如下所示

  @Override
    public void onActivityCreated(Bundle arg0) {
        super.onActivityCreated(arg0);
        getDialog().getWindow()
                .getAttributes().windowAnimations = R.style.DialogAnimation;
    }
Run Code Online (Sandbox Code Playgroud)

我的DialogAnimation样式文件如下

<style name="DialogAnimation">
        <item name="android:windowEnterAnimation">@android:anim/fade_in</item>
        <item name="android:windowExitAnimation">@android:anim/fade_out</item>
    </style>
Run Code Online (Sandbox Code Playgroud)

这对我有用......

现在我的问题是我希望有两个不同的退出动画,一个用于点击确定按钮,一个用于取消按钮.所以我做的是我尝试在解雇之前更改转换,但它没有工作..任何解决方案如何实现......这就是我的尝试.

  @Override
    public void onClick(View v) {
        getDialog().getWindow()
                .getAttributes().windowAnimations = R.style.DialogAnimation2;
        this.dismiss();
    }
Run Code Online (Sandbox Code Playgroud)

android buttonclick android-animation dialogfragment

36
推荐指数
3
解决办法
2万
查看次数

如何向DialogFragment添加动画?

如何向DialogFragment添加动画.我的动画是:

出于动画:

<scale
    android:duration="200"
    android:fillAfter="false"
    android:fromXScale="1.0"
    android:fromYScale="1.0"
    android:interpolator="@android:anim/linear_interpolator"
    android:pivotX="50%"
    android:pivotY="-90%"
    android:startOffset="200"
    android:toXScale="0.5"
    android:toYScale="0.5" />

<translate
    android:duration="300"
    android:fromXDelta="0"
    android:fromYDelta="0"
    android:toXDelta="-200"
    android:toYDelta="-200" />
Run Code Online (Sandbox Code Playgroud)

在动画中:

<scale
    android:duration="200"
    android:fillAfter="false"
    android:fromXScale="0.5"
    android:fromYScale="0.5"
    android:interpolator="@android:anim/linear_interpolator"
    android:pivotX="50%"
    android:pivotY="-90%"
    android:toXScale="1.0"
    android:toYScale="1.0" />

<translate
    android:duration="300"
    android:fromXDelta="-200"
    android:fromYDelta="-200"
    android:toXDelta="0"
    android:toYDelta="0" />
Run Code Online (Sandbox Code Playgroud)

和我的代码:

FragmentTransaction ft = getFragmentManager().beginTransaction();
                ft.setCustomAnimations(R.anim.jump_in, R.anim.jump_out, R.anim.jump_in, R.anim.jump_out);
                ft.add(layer_frag, "layer frag");
                ft.show(layer_frag).commit();//layer_frag is a class whitch extends DialogFragment
Run Code Online (Sandbox Code Playgroud)

我必须错过一些东西,因为它看起来像以前一样.

animation android

12
推荐指数
1
解决办法
2万
查看次数

导航架构组件:过渡动画不适用于对话框

<dialog我的导航图中有一个带有进入/退出动画的动画,但动画不适用于对话框。我已经在<fragment节点上测试过它们,它们工作正常。

为了澄清起见,被引用的对话框是一个 DialogFragment

这是限制还是我做错了什么?

这是我的导航图中的相关片段:

<fragment
        android:id="@+id/fragment_home"
        android:name="com.my.project.fragments.HomeFragment"
        android:label="@string/nav_home"
        tools:layout="@layout/fragment_home">
        <action
            android:id="@+id/action_fragment_home_to_fragment_dialog_new_user_welcome"
            app:destination="@id/fragment_dialog_new_user_welcome"
            app:enterAnim="@anim/nav_fade_enter_anim"
            app:exitAnim="@anim/nav_fade_exit_anim"
            app:popUpTo="@layout/fragment_home" />
    </fragment>

    <dialog
        android:id="@+id/fragment_dialog_new_user_welcome"
        android:name="com.my.project.fragments.NewUserWelcomeDialog"
        tools:layout="@layout/fragment_dialog_new_user_welcome">

        <action
            android:id="@+id/action_fragment_dialog_new_user_welcome_to_activity_discover_detail"
            app:destination="@id/fragment_discover_detail"
            app:launchSingleTop="true"
            app:popUpTo="@id/fragment_home" />
    </dialog>
Run Code Online (Sandbox Code Playgroud)

这是输入动画:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <alpha
        android:duration="1000"
        android:fromAlpha="0.0"
        android:toAlpha="1.0" />
</set>
Run Code Online (Sandbox Code Playgroud)

这是退出动画:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <alpha
        android:duration="500"
        android:fromAlpha="1.0"
        android:toAlpha="0.0" />
</set>
Run Code Online (Sandbox Code Playgroud)

android android-architecture-navigation

12
推荐指数
1
解决办法
1745
查看次数

进入和退出动画在对话框片段中不起作用

我已经检查了所有关于此的 Stack Overflow Q/A,仍然找不到解决方案。

以下是文件:

对话框片段.java

package app.com.thetechnocafe.mealsquickie.Dialogs;

import android.app.Dialog;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.design.widget.TextInputEditText;
import android.support.design.widget.TextInputLayout;
import android.support.v4.app.DialogFragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.Toast;

import app.com.thetechnocafe.mealsquickie.R;
import butterknife.BindView;
import butterknife.ButterKnife;

/**
 * Created by gurleensethi on 26/01/17.
 */

public class NewCategoryDialog extends DialogFragment {

    @BindView(R.id.category_name_text_input_layout)
    TextInputLayout mCategoryNameTextInputLayout;
    @BindView(R.id.category_name_text_input_edit_text)
    TextInputEditText mCategoryNameTextInputEditText;
    @BindView(R.id.cancel_button)
    Button mCancelButton;
    @BindView(R.id.add_button)
    Button mAddButton;

    private OnAddCategoryListener mListener;

    //Interface for callbacks
    public interface OnAddCategoryListener {
        void onCategoryAdded(String category);
    }

    //Instance method …
Run Code Online (Sandbox Code Playgroud)

android

8
推荐指数
2
解决办法
1527
查看次数

以编程方式动画自定义Dialog

我想为我的自定义对话框设置一些动画,我想以编程方式进行.我知道我可以用xml动画这样做:

<style name="DialogAnimation">
    <item name="android:windowEnterAnimation">@anim/slide_up_dialog</item>
    <item name="android:windowExitAnimation">@anim/slide_out_down</item>
</style>


Dialog imageDiaglog= new Dialog(MainActivity.this,R.style.DialogAnimation);
Run Code Online (Sandbox Code Playgroud)

但我想以编程方式进行.如何将以编程方式创建的动画设置为Dialog的show()和hide()方法?

谢谢.

android android-animation android-dialog

6
推荐指数
1
解决办法
3021
查看次数

如何在 Android 中启动带有过渡的 DialogFragment?

以下是我的场景。

我有Activity MainActivity一个FAB。当用户点击时FAB,我打开一个全屏DialogFragment。我想打开DialogFragment一些过渡。

这是我迄今为止尝试过的代码。

//MainActivity.java

 final FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
 fab.setOnClickListener(new View.OnClickListener() {
  @Override
  public void onClick(View view) {

    ReviewDialog reviewDialog = ReviewDialog.newInstance();
    Slide slide = new Slide();
    slide.setSlideEdge(Gravity.LEFT);
    slide.setDuration(1000);
    reviewDialog.setEnterTransition(slide);
    Bundle bundle =ActivityOptions.makeSceneTransitionAnimation(ScrollingActivity.this)
        .toBundle();
    reviewDialog.setArguments(bundle);
    reviewDialog.show(getSupportFragmentManager(),"review");
  }
});
Run Code Online (Sandbox Code Playgroud)

这是 DialogFragment ReviewDialog 的代码。

   //ReviewDialog.java
    public class ReviewDialog extends DialogFragment {
  static ReviewDialog newInstance() {
    ReviewDialog f = new ReviewDialog();

    // Supply num input as an argument.
    Bundle args = …
Run Code Online (Sandbox Code Playgroud)

android transition material-design

5
推荐指数
1
解决办法
4871
查看次数