片段中工具栏上的setHomeButtonEnabled

ant*_*009 4 android android-fragments android-toolbar

Android studio 1.3
com.android.support:appcompat-v7:22.1.1
Run Code Online (Sandbox Code Playgroud)

你好,

我正在使用新工具栏并显示在我的片段中.但是,我希望能够通过拥有导航回到之前的片段setHomeButtonEnabled(true).但是,在onCreateView的片段中没有这样的功能.这适用于Activity,但在片段中不起作用.

无论如何让工具栏显示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;
    }
}
Run Code Online (Sandbox Code Playgroud)

在我的活动中,我正在扩展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();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

正如您在图像上看到的那样,工具栏左侧没有箭头以允许用户回头. 在此输入图像描述

kas*_*che 7

使用

   appCompatActivity.getSupportActionBar().setDisplayHomeAsUpEnabled(true);
Run Code Online (Sandbox Code Playgroud)

代替

   appCompatActivity.getActionBar().setDisplayHomeAsUpEnabled(true);
Run Code Online (Sandbox Code Playgroud)