android - fragment 中工具栏上的 setHomeButtonEnabled

标签 android android-fragments android-toolbar

Android studio 1.3
com.android.support:appcompat-v7:22.1.1

你好,

我正在使用新的工具栏并显示在我的 fragment 中。但是,我希望能够通过 setHomeButtonEnabled(true) 导航回上一个 fragment 。但是,在我的 onCreateView fragment 中没有这样的功能。这在 Activity 中有效,但在 fragment 中无效。

有没有办法让工具栏显示 setHomeButtonEnabled,以便显示一个箭头,以便用户可以导航回来。

public class FileTransferFragment extends Fragment {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setHasOptionsMenu(true);

    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_file_transfer, container, false);

        final Toolbar toolbar = (Toolbar)view.findViewById(R.id.app_bar);
        AppCompatActivity appCompatActivity = (AppCompatActivity)getActivity();
        appCompatActivity.setSupportActionBar(toolbar);

    /* TRIED THIS BUT DIDN'T WORK */
        appCompatActivity.getActionBar().setHomeButtonEnabled(true);
        appCompatActivity.getActionBar().setDisplayHomeAsUpEnabled(true);
        return view;
    }
}

在我的 Activity 中,我正在扩展 AppCompatActivity 并使用 appcompat-v7:22.1.1

public class FileTransferActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_file_transfer);

        if(savedInstanceState == null) {
            FragmentManager fragmentManager = getFragmentManager();
            FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
            fragmentTransaction.add(R.id.fragment_container,
                    FileTransferFragment.getFileTransferFragment(1234), "FileTransferFragment");
            fragmentTransaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
            fragmentTransaction.commit();
        }
    }
}

正如您在图像中看到的那样,工具栏左侧没有允许用户向后导航的箭头。 enter image description here

最佳答案

使用

   appCompatActivity.getSupportActionBar().setDisplayHomeAsUpEnabled(true);

代替

   appCompatActivity.getActionBar().setDisplayHomeAsUpEnabled(true);

关于android - fragment 中工具栏上的 setHomeButtonEnabled,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30528602/

相关文章:

java - 在 firebase 中创建异常

android - Crosswalk 使 Visual Studio Android 模拟器崩溃

java - 如何在 Java Android 中使用 ViewPager 滑动选项卡的单个 fragment

android - Parcelable 与公共(public)静态。安卓模式

android - Android中的多个动画

android - 应用程序被杀死和恢复后重叠的隐藏 fragment

android - 抽屉导航、工具栏和回收器在同一个 xml 布局文件中查看所有内容?

android - 使用 CoordinatorLayout 在滚动时隐藏工具栏

android - Android 工具栏标题中的多行标题

java - Android - 在notifyDataSetChanged之后ListView保持空白