java - 如何在背压上做一些事情,而不是从 backStack 中弹出一个片段,并且仍然应该能够为其他片段正常工作?
问题描述
我有一个应用程序,其中有一个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
函数,它会从Activity中的后退键捕获侦听器
@Override
public void onBackPressed() {
//put your code here
}
或者
如果您在Fragment中,请使用这个
@Override
public void onDetach() {
super.onDetach();
PUT YOUR CODE HERE
}
推荐阅读
- javascript - 从父功能组件调用类子组件方法
- c# - 如何映射 IGrouping
到 IGrouping 使用Linq? - android - Android 11 - 应用之间的可共享文件
- node.js - Mongoose 在数组对象中存储相同的日期和时间
- python - 有没有办法在装饰器中包装函数调用
- node.js - Mongoose 验证器未更新
- puppeteer - 应用 backgroundColor 时 Puppeteer 隐藏单元格边框
- sql - oracle中通过添加索引进行性能调优
- python - 理解梯度计算的pytorch示例代码
- huggingface-transformers - 基于 BERT 的 Hugging Face API 的多标签限制是多少?