【发布时间】:2015-05-29 20:47:39
【问题描述】:
Android studio 1.3
com.android.support:appcompat-v7:22.1.1
你好,
我正在使用新的工具栏并显示在我的片段中。但是,我希望能够通过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;
}
}
在我的活动中,我正在扩展 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();
}
}
}
正如您在图片中看到的那样,工具栏左侧没有箭头可让用户向后导航。
【问题讨论】:
-
在 Fragment 的父 Activity 中设置操作栏,而不是在 onCreateView 中。要在片段中获取操作栏,请在 onActivityCreated() 内部使用此 ((AppCompatActivity)getActivity()).getSupportActionBar() ,然后您可以自定义它。
-
你能告诉我......对于actionBar......你在使用工具栏小部件吗?还是不行?
-
我正在使用 support-v7-widget-toolbar
-
我已经给出了解决方案,试试吧.. 100% 有效!
标签: android android-fragments android-toolbar