【问题标题】:Action Bar Tabs - Having two fragments (one being dynamic) in one tab操作栏选项卡 - 在一个选项卡中有两个片段(一个是动态的)
【发布时间】:2012-08-20 07:09:33
【问题描述】:

我正在尝试创建一个选项卡,该选项卡在左侧片段显示列表,在右侧显示详细片段。当用户单击列表项时,右侧片段应更改为适当的片段。

我是 android 新手,所以我使用了一个教程,我知道我需要对 tablistener 做一些事情:

 公共静态类 TabListener 实现 ActionBar.TabListener
     {
        私人最终活动 mActivity;
        私有最终字符串 mTag;
        私有最终类 mClass;
        私有最终捆绑 mArgs;
        私有片段 mFragment;

        public TabListener(Activity activity, String tag, Class<T> clz) {
            this(activity, tag, clz, null);
        }

        public TabListener(Activity activity, String tag, Class<T> clz, Bundle args) {
            mActivity = activity;
            mTag = tag;
            mClass = clz;
            mArgs = args;

            // Check to see if we already have a fragment for this tab, probably
            // from a previously saved state.  If so, deactivate it, because our
            // initial state is that a tab isn't shown.
            mFragment = mActivity.getFragmentManager().findFragmentByTag(mTag);
            if (mFragment != null && !mFragment.isDetached()) {
                ft = mActivity.getFragmentManager().beginTransaction();
                ft.detach(mFragment);
                ft.commit();
            }
        }

        public void onTabSelected(Tab tab, FragmentTransaction ft) {
            if (mFragment == null) {
                mFragment = Fragment.instantiate(mActivity, mClass.getName(), mArgs);
                    ft.add(android.R.id.content, mFragment, mTag);
                    tabtag = mTag;
            } 
            else {
                ft.attach(mFragment);
            }
        }

        public void onTabUnselected(Tab tab, FragmentTransaction ft) {
            if (mFragment != null) {
                ft.detach(mFragment);
            }
        }

        public void onTabReselected(Tab tab, FragmentTransaction ft) {
            //Toast.makeText(mActivity, "Reselected!", Toast.LENGTH_SHORT).show();
        }
    }

我需要的另一个很好的例子是 Gmail 应用程序,左侧是列表,右侧是详细信息,并将操作栏(我的有标签)保持在顶部。

我知道这个监听器会为每个点击的选项卡膨胀一个片段,但是我如何为其中包含两个片段的 布局 膨胀?

【问题讨论】:

  • 你解决了吗?我也有同样的问题。

标签: android dynamic tabs android-fragments android-actionbar


【解决方案1】:

用两个片段填充布局很简单:您只需指定布局中每个片段的类。但是您不能混合使用静态(布局 XML 定义)和动态片段。我的意思是,您不能在代码中动态地实例化一个新的 Fragment 并将其插入到最初在 XML 中填充有 Fragments 的 View 容器(例如,LinearLayout)中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-13
    相关资源
    最近更新 更多