我想知道这是否可以在AppCompatActivity
中进行。在Fragment
AppCompatActivity
杀死super.onBackPressed();
Fragment
做一些动作
这是代表自己的模型代码:
@Override
public void onBackPressed() {
ToppMosteFragment.doSomeActionBeforeBackPressedKillYou();
final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
// this is not working..
super.onBackPressed();
}
}, 1000);
}
答案 0 :(得分:1)
您可以尝试让doSomeActionBeforeBackPressedKillYou()
返回布尔值
并做
@Override
public void onBackPressed() {
if(ToppMosteFragment.doSomeActionBeforeBackPressedKillYou()) {
super.onBackPressed();
}
}
编辑:
如果您定义了动画,则可以添加一个监听器:
Animation animation = actionButton.getHideAnimation();
animation.setAnimationListener(new Animation.AnimationListener(){
@Override
public void onAnimationStart(Animation arg0) {
}
@Override
public void onAnimationRepeat(Animation arg0) {
}
@Override
public void onAnimationEnd(Animation arg0) {
listener.onFabAnimationEnd();
}
});
actionButton.setHideAnimation(animation);
listener是一个由您的活动类
实现的接口在你的活动中
@Override
public void onFabAnimationEnd() {
super.onBackPressed();
}
答案 1 :(得分:0)
我有一个想法, 这可能是一个普遍的事情 -
使用以下方法创建BaseFragment
-
public class BaseFragment extends Fragment {
public boolean onFragmentBackPressed() {
return true;
}
}
将MyFragment
扩展为BaseFragment
class MyFragment extends BaseFragment {
// override method
@Override
public boolean onFragmentBackPressed() {
return false;
}
}
如果MainActivity
方法BaseFragment
,如果返回false,则检查onFragmentBackPressed()
方法@Override
public void onBackPressed() {
if (MyFragment instance if BaseFragment) {
if (!((BaseFragment) MyFragment).onFragmentBackPressed()) {
// perform and action
} else {
super.onBackPressed();
}
} else {
super.onBackPressed();
}
}
如果是,请在退出前执行某些操作
git config --global --remove-section url."git@github.com"