Как сделать что-то при нажатии на спину вместо выталкивания из backStack только для одного фрагмента и все же должно нормально работать для других фрагментов? - PullRequest
0 голосов
/ 06 июня 2018

У меня есть приложение, в котором есть FramLayout с идентификатором frame_container.

Мой onCreate выглядит так: -

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        hideKeyboard();
        editText = findViewById(R.id.editText4);
        editText.setSelection(editText.getText().toString().length());
        textView = findViewById(R.id.textView3);
        frameLayout = findViewById(R.id.frame_container);
        frameLayout.setVisibility(View.INVISIBLE);
        FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction();
        fragmentTransaction.add(R.id.frame_container,new advancefunction());
        fragmentTransaction.addToBackStack(null);
        fragmentTransaction.commit();
        frameLayout.animate().translationXBy(1000f);


    }

Когда я нажимаю кнопку, он простоприносит мой фрагмент с анимацией, используя функцию: -

@Override
    public void advanceButton(View view) {

        frameLayout.setVisibility(View.VISIBLE);
        frameLayout.animate().translationXBy(-1000f).setDuration(500);
    }

Поэтому, когда я нажимаю backButton, он переходит в предыдущее состояние, но вместо этого я хочу получить invisible и translationXby(1000f) любые предложения о том, как этого добиться, какЯ новичок в Android и все еще учусь, так что помощь будет отличной.

Ответы [ 2 ]

0 голосов
/ 06 июня 2018

Попробуйте:

@Override
public void onBackPressed() {
    int count = getFragmentManager().getBackStackEntryCount();
    if (count == 0) {
        super.onBackPressed();
    } else getFragmentManager().popBackStack();
}
0 голосов
/ 06 июня 2018

Просто используйте функцию onBackPressed, которая ловит слушателя с помощью клавиши «Назад» внутри вашей Активности

 @Override
    public void onBackPressed() {
       //put your code here
    }

или

Используйте эту функцию, если вывнутри фрагмент

@Override
    public void onDetach() {
        super.onDetach();
        PUT YOUR CODE HERE
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...