[英]How to do something on back press instead of pop from backStack just for one fragment and still should able to work normally for other fragments?
我有一個應用程序,其中有一個FramLayout
ID為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的新手,並且仍然在學習,因此提供的幫助非常棒。
只需使用onBackPressed
函數即可從“ 活動”內的返回鍵捕獲偵聽器
@Override
public void onBackPressed() {
//put your code here
}
要么
如果您在片段中,請使用此
@Override
public void onDetach() {
super.onDetach();
PUT YOUR CODE HERE
}
試試吧:
@Override
public void onBackPressed() {
int count = getFragmentManager().getBackStackEntryCount();
if (count == 0) {
super.onBackPressed();
} else getFragmentManager().popBackStack();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.