应用程序图标后退箭头显示在景观和肖像

时间:2012-04-13 14:31:56

标签: android actionbarsherlock android-actionbar

我有一个使用ActionBar(实际上是ActionBarSherlock)的应用程序,它包含两个片段,一个是列表,另一个是细节片段。当设备处于纵向模式并且用户从列表视图单击到详细信息视图时,我在详细信息视图上设置setHomeButtonEnabled,因此用户可以单击应用程序图标返回到列表(以及后退箭头自动显示。)

当设备处于横向模式,并且两个片段都显示在屏幕上时,我仍然会看到应用程序图标旁边的后退箭头,这没有任何意义,因为没有任何内容可以返回。

不确定我是否需要在代码中执行某些操作,因此后退箭头不会以横向模式显示。

1 个答案:

答案 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);