java - 从片段设置活动工具栏行为
问题描述
我有一个打开Activity' hosting a
片段的应用程序。`
显示Fragment
一个RecyclerView
,用户可以点击其中的一个项目RecyclerView
被带到一个新的Fragment
,由相同的托管Activity
。
Toolbar
xml 项位于 th中,而Activity
不是每个个体Fragment
。当用户导航到第二个Fragment
时,我希望他们能够单击后退按钮导航回上一个Fragment
。
Fragment
以下是从to导航的代码Fragment
:
holder.mView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String pollID = mFireAdapter.getRef(holder.getAdapterPosition()).getKey();
Fragment pollFragment = PollFragment.newInstance(pollID);
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.setCustomAnimations(R.anim.fadein, R.anim.fadeout);
ft.add(R.id.poll_feed_fragment, pollFragment);
ft.addToBackStack(null);
ft.commit();
在接下来Fragment
,我想显示后退按钮,并试图通过访问该.setDisplayHomeUpAsEnabled()
方法无济于事:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
final View v = inflater.inflate(R.layout.fragment_poll, container, false);
ButterKnife.bind(v);
Toolbar toolbar = getActivity().findViewById(R.id.action_tool_bar);
解决方案
在您的片段中,您可以使用方法 getActivity。
((Your_activity_class_name)getActivity()).getSupportActionBar()
然后创建将返回您的工具栏的自定义方法。或者,如果您通过方法setSupportActionBar设置工具栏(如支持操作栏),只需使用getSupportActionBar
您不需要每次都找到您的工具栏,因为您已经这样做了。
推荐阅读
- javascript - 动态问题数组的表单验证
- c - 我们如何检测来自 linux socketCAN 的丢帧?
- sql - SQL Server 在表中查找序列日期并在可能的情况下创建句点
- bootstrap-4 - 引导工具提示在单击时显示但在鼠标移出时隐藏
- laravel - 未定义的变量:类别/清除路线后出现此错误
- angular - 从服务器更新 ChartJS 图表的数据
- matlab - 如何将 MATLAB 布局重置为默认值(命令行)
- python - 如果它包含特定字符,如何在python中为单元格着色?
- python - 如何让网格在 tkinter 中的容器内拉伸
- html - 将 td 中存在的 div 扩展到更远而不影响父级