【问题标题】:App Icon back arrow shows in landscape and portrait应用图标后退箭头以横向和纵向显示
【发布时间】:2012-04-14 07:35:04
【问题描述】:
我有一个使用 ActionBar(实际上是 ActionBarSherlock)的应用程序,其中包含两个片段,一个是列表,一个是详细信息片段。当设备处于纵向模式并且用户从列表视图单击到详细信息视图时,我在详细信息视图上设置setHomeButtonEnabled,因此用户可以单击应用图标返回到列表(以及返回箭头会自动显示)。
当设备处于横向模式,并且两个片段都显示在屏幕上时,我仍然看到 App Icon 旁边的后退箭头,这没有任何意义,因为没有什么可以返回。
不确定我是否需要在代码中执行某些操作,因此后退箭头不会在横向模式下显示。
【问题讨论】:
标签:
android
actionbarsherlock
android-actionbar
【解决方案1】:
嗯,通过将这段代码添加到详细信息片段中,我能够得到我想要的结果。可能不理想,但它有效:
@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);