2012-04-13 170 views
0

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

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

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

回答

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); 
相关问题