1

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

我是 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 应用程序,左侧是列表,右侧是详细信息,并将操作栏(我的有标签)保持在顶部。

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

4

1 回答 1

1

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

于 2012-10-05T09:50:17.040 回答