Анимации, которые я использовал для раздувания фрагмента, не работают в диалоге - PullRequest
0 голосов
/ 10 июля 2019

Я работаю над фрагментом меню, который покрывает половину экрана при нажатии кнопки.После того, как я не смог выполнить требования меню, используя фрагмент, я решил переключиться на пользовательский диалог.Используя пользовательский диалог, я смог заставить меню работать так, как я хотел, однако я не могу заставить эффекты анимации (которые отлично работали с ранее использованным фрагментом) отображаться, когда пользовательский диалог отображается или закрывается.Приложение работает отлично, но анимация не появляется.В чем здесь проблема?

Это две функции, которые я использую для своего пользовательского диалога:

private void initDialog() {

dialog = new Dialog(this, R.style.DialogCustomTheme);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.dialog_menu);

// positioning
WindowManager.LayoutParams WMLP = dialog.getWindow().getAttributes();
WMLP.x = -300;   //x position
WMLP.y = 100;   //y position
dialog.getWindow().setAttributes(WMLP);


dialog.getWindow().getAttributes().windowAnimations = R.anim.enter_from_left;
dialog.show();

initDialogViews();

}

private void initDialogViews() {

    dialog.findViewById(R.id.menuOption1).setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Toast.makeText(getApplicationContext(), "Most Popular Items", Toast.LENGTH_LONG).show();
            dialog.getWindow().getAttributes().windowAnimations = R.anim.exit_to_left;
            dialog.dismiss();
        }
    });

    dialog.findViewById(R.id.menuOption2).setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Toast.makeText(getApplicationContext(), "Top Rated Items", Toast.LENGTH_LONG).show();
            dialog.getWindow().getAttributes().windowAnimations = R.anim.exit_to_left;
            dialog.dismiss();
        }
    });

    dialog.findViewById(R.id.menuOption3).setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Toast.makeText(getApplicationContext(), "Cheapest Items", Toast.LENGTH_LONG).show();
            dialog.getWindow().getAttributes().windowAnimations = R.anim.exit_to_left;
            dialog.dismiss();
        }
    });

    dialog.findViewById(R.id.menuOption4).setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Toast.makeText(getApplicationContext(), "Free Items", Toast.LENGTH_LONG).show();
            dialog.getWindow().getAttributes().windowAnimations = R.anim.exit_to_left;
            dialog.dismiss();
        }
    });

    dialog.findViewById(R.id.menuLogIn).setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Toast.makeText(getApplicationContext(), "Feature still not added!", Toast.LENGTH_LONG).show();
            dialog.getWindow().getAttributes().windowAnimations = R.anim.exit_to_left;
            dialog.dismiss();
        }
    });
}

enter_from_left.xml:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false">
<translate
    android:fromXDelta="-100%"
    android:toXDelta="0%"
    android:fromYDelta="0%"
    android:toYDelta="0%"
    android:duration="2000"
    />

exit_to_left.xml:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
 android:shareInterpolator="false">
<translate
    android:fromXDelta="0%"
    android:toXDelta="-100%"
    android:fromYDelta="0%"
    android:toYDelta="0%"
    android:duration="2000"
    />

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...