android - 操作栏选项卡 - 在一个选项卡中有两个 fragment (一个是动态的)

标签 android dynamic tabs android-fragments android-actionbar

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

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

我知道此监听器会为每个点击的选项卡扩充一个 fragment ,但我如何扩充其中包含两个 fragment 的布局

最佳答案

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

关于android - 操作栏选项卡 - 在一个选项卡中有两个 fragment (一个是动态的),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12114150/

相关文章:

php - 从数据库动态加载元素

c# - 切换选项卡后,WPF ComboBox选择更改

c++ - Tab 键在 IWebbrowser2 中不起作用

c++ - C++类中无法重载+运算符

android - 来自 Google Places API Android 的 PlaceFilter 地点类型

javascript - PhoneGap - exec() 调用未知插件

android - 微调器 setAdapter 菜单 NullPointerException

class - 在Elasticsearch Nest中索引动态对象

android - android中选项卡的OnClickListener问题

Android native 应用程序安装横幅不起作用