我有一个使用ActionBar(实际上是ActionBarSherlock)的应用程序,它包含两个片段,一个是列表,另一个是细节片段。当设备处于纵向模式并且用户从列表视图单击到详细信息视图时,我在详细信息视图上设置setHomeButtonEnabled
,因此用户可以单击应用程序图标返回到列表(以及后退箭头自动显示。)
当设备处于横向模式,并且两个片段都显示在屏幕上时,我仍然会看到应用程序图标旁边的后退箭头,这没有任何意义,因为没有任何内容可以返回。
不确定我是否需要在代码中执行某些操作,因此后退箭头不会以横向模式显示。
答案 0 :(得分:0)
好吧,通过将此代码添加到详细信息片段,我能够获得我想要的结果。可能不理想,但它有效:
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setHasOptionsMenu(true);
if (getResources().getConfiguration().orientation != Configuration.ORIENTATION_LANDSCAPE)
this.getSherlockActivity().getSupportActionBar().setDisplayHomeAsUpEnabled(true);
setRetainInstance(true);
}
更新
发现这可能是一个更好的解决方案。它检测“详细信息”片段是否可见:
final DetailsFragment fragment = (DetailsFragment)getFragmentManager().findFragmentById(R.id.fragmentDetails);
if (fragment == null || fragment.isInLayout() == false)
this.getSherlockActivity().getSupportActionBar().setDisplayHomeAsUpEnabled(true);