【问题标题】:How to programmatically add fragments in a loop to a single activity?如何以编程方式将循环中的片段添加到单个活动?
【发布时间】:2017-01-13 02:24:34
【问题描述】:

因为我不知道我需要多少视图,所以我必须动态创建它们。根据我的研究,每个片段都必须有一个容器,它们不能共享(如果我错了,请纠正我),所以我需要为每个片段动态创建视图容器,然后我可以拥有这个:

for(int i = 0; i < size ; i ++) {
final FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.disallowAddToBackStack();
ft.add(new ABCFragment(), TAG).commit();
}

有谁知道我怎样才能让它工作?我还是安卓新手。 谢谢!!!!

【问题讨论】:

  • @NiteshVerma 我检查了,这个对我不起作用。
  • 该代码是针对 xamarin 的,希望你已经根据java 和 Android studio 进行了修改。您发布的代码确实表明您尝试过。

标签: android android-layout android-fragments android-activity android-view


【解决方案1】:

在xml中定义它,它将作为容器工作:-

<RelativeLayout
        android:visibility="gone"
        android:id="@+id/R.id.container_fragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@color/transparents"/>

要获得动态数量的片段,请为其定义不同的标签名称:-

for (int i=0;i<size;i++){
            FragmentManager fm = getFragmentManager();
            FragmentTransaction ft = fm.beginTransaction();
            ft.add(R.id.container_fragment, new DetailFragment(), tag.get(i));

            ft.commit();
        }

你可以在tag.get(i)下给不同的标签名

【讨论】:

  • 谢谢,我试过了,但似乎我所有的片段都相互重叠了。我的片段都是 wrap_content。您认为我们是否在这里遗漏了什么?
  • 你想要所有的片段同时在不同的屏幕上
  • 我希望所有片段同时在同一个屏幕上。
  • 意味着你希望你的所有片段都以垂直方式......可以滚动......或者如果有其他任何东西......那么请提供这样的绘图或其他东西,这样才能知道你真正想要什么......
猜你喜欢
  • 1970-01-01
  • 2018-05-10
  • 2016-06-18
  • 1970-01-01
  • 1970-01-01
  • 2014-11-11
  • 1970-01-01
  • 2012-06-19
相关资源
最近更新 更多