在一个标签中有两个片段(一个是动态的)
我正在尝试创建一个选项卡,其中显示左侧片段的列表以及右侧的详细片段。 当用户点击一个列表项目时,右边的片段应该更改为适当的片段。
我是新来的android所以我用了一个教程,我知道我需要做一些与tablistener:
public static class TabListener implements ActionBar.TabListener
{
private final Activity mActivity;
private final String mTag;
private final Class mClass;
private final Bundle mArgs;
private Fragment 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应用程序,左边是一个列表,右边是详细信息,并将操作栏(我的选项卡)保留在顶部。
我知道这个监听器为每个被点击的选项卡提供了一个片段,但是如何膨胀一个包含两个片段的布局?
用两个片段膨胀布局很简单:只需在布局中指定每个片段的Class。 但是你不能混合使用静态(XML定义的布局)和动态片段。 我的意思是,你不能动态地在代码中实例化一个新的Fragment,并将它插入一个最初由XML中的Fragments填充的View容器(例如,一个LinearLayout)。
链接地址: http://www.djcxy.com/p/78911.html上一篇: Having two fragments (one being dynamic) in one tab
下一篇: Cannot convert from android.support.v4.app.Fragment to android.app.Fragment