0

我正在尝试使用 Actionbar 选项卡和片段来实现一个非常基本的导航结构。基本上我有三个片段,它们是使用操作栏上的选项卡选择的。这些片段中的每一个都是一个列表视图,它应该允许用户选择一个项目并打开一个详细视图。

我想知道从现有片段向屏幕添加新片段的最佳方法。我目前将详细视图全部实现为活动(这显然不理想,因为操作栏选项卡不存在,并且无论当前位置如何,使用后退按钮的导航都会返回到选项卡 1)。

我在我的 MainActivity 中添加所有列表片段;

    public void onTabSelected(Tab tab, FragmentTransaction ft) {
        if (tab.getPosition() == 0) {
            Frag1 frag = new Frag1();
            ft.replace(android.R.id.content, frag);
        } else if (tab.getPosition() == 1) {
            Frag2 frag = new Frag2();
            ft.replace(android.R.id.content, frag);
        } else if (tab.getPosition() == 2) {
            Frag3 frag = new Frag3();
            ft.replace(android.R.id.content, frag);
        }
    }

我需要在这些片段上实现什么来启动详细视图?我已经尝试过这样的事情,但导航仍然无法按照我的意愿工作。

private void onListItemClick(View v, int pos, long id) {
    Log.d(TAG, "Clicked at position: " + pos);
    NewsModel selectedModel = newsItems.get(pos);
    Log.d(TAG, "Item: " + selectedModel.getTitle());

    NewsDetailFragment fragment = NewsDetailFragment.newInstance(selectedModel);
    FragmentTransaction ft  = getFragmentManager().beginTransaction();
    ft.replace(R.id.content, fragment);
    ft.addToBackStack(null);
    ft.commit();

我通常来自 iOS 世界,所以我的一些范例可能与 Android 的功能有点不合时宜。

谢谢!

4

1 回答 1

1

支持平板电脑和手机培训文档中所述,使用Fragments 显示主/详细视图的标准方式是在手机上作为单独的活动(当您没有足够的空间来显示两者时)并在平板电脑上并排显示。SDK 附带一个实现此建议的 Master/Detail 示例(如果您使用的是 Eclipse,请转到 New->Other->Android->Android Activity->Master/Detail Flow)。

您可以将此培训与您已经拥有的选项卡代码结合起来(在选择选项卡时替换左侧片段,可能还希望在选择选项卡时删除右侧的详细视图)以获得有效的布局在所有 Android 设备上。

您可能会发现有用的一些附加信息是多窗格布局设计指南和整个片段训练集

于 2013-04-05T02:25:36.497 回答