0

2つのフラグメント(1つはリストフラグメント、もう1つは詳細フラグメント)を含むActionBar(実際にはActionBarSherlock)を使用しているアプリがあります。デバイスがポートレートモードで、ユーザーがリストビューから詳細ビューにクリックすると、詳細ビ​​ューで設定setHomeButtonEnabledしているので、ユーザーはアプリアイコンをクリックしてリストに戻ることができます(戻る矢印が自動的に表示されます) )。

デバイスが横向きモードで、両方のフラグメントが画面に表示されている場合でも、アプリアイコンの横に戻る矢印が表示されますが、戻るものがないため、意味がありません。

コードで何かをする必要があるかどうかわからないので、戻る矢印は横向きモードでは表示されません。

4

1 に答える 1

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);
于 2012-04-13T22:43:59.357 に答える