我需要根据调用的 fragment 更改和更新 ActionBar 标题。
我使用了这个示例方法:
=Method 1===============================
Activity > Codigo
public void setActionBarTitle(String title) {
getSupportActionBar().setTitle(title);
}
Fragmento > Codigo
public void onResume(){
super.onResume();
// Set title bar
((MainFragmentActivity) getActivity())
.setActionBarTitle("Your title");
}
=Method 2================================
Activity:
public void setActionBarTitle(String title){
YOUR_CUSTOM_ACTION_BAR_TITLE.setText(title);
}
Fragment:
((MainFragmentActivity) getActivity()).setActionBarTitle(YOUR_TITLE);
两种方式我都有,没有一个能实时更新标题。
但它无法正常工作,因为它没有根据屏幕/fragment 变化更新标题。升级需要一段时间,我希望是实时的。
缺少什么?
最佳答案
首先创建接口(interface)
public interface ToolbarInterface {
public void getToolbarResources(String title, int visibility);
}
在您的 Activity 中实现它
public class NavigationDrawerActivity extends AppCompatActivity
implements ToolbarInterface
并重写activity中的接口(interface)方法
@Override
public void getToolbarResources(String title, int visibility) {
getSupportActionBar().setTitle(title);
}
}
在Fragment中调用Oncreete方法中的接口(interface)如
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ToolbarInterface toolbarCallback = (ToolbarInterface) getActivity();
}
并从 onCreateView 方法设置标题,例如
toolbarCallback.getToolbarResources("Toolbar title",1);
关于java - 更改 fragment 中的 ActionBar 标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45033628/