将片段添加到片段

时间:2019-03-11 18:58:40

标签: android android-fragments

我是android开发的新手。 我创建了一个包含视图,按钮,约束等的Fragment,我称之为fragment_code_activation_circles。现在,我想将其添加到新的片段中,假设它是“主要”片段,并且包含我确实创建的所有其他片段,并且我想为其设置约束,但是我不知道如何添加它。我试图从通用面板上将{}<fragment>拖到“设计”选项卡上的屏幕上,但没有成功。那有可能还是我做了我不应该做的事情?在iOS上,您只需将View类的任何子级添加到父级视图中,然后轻松设置其约束即可。

2 个答案:

答案 0 :(得分:1)

您不能将活动放置在片段内-片段只能用于放置在活动内。
您可以在活动中放置任意数量的片段,但不能将活动放置在片段内。 将片段视为可以放置在活动中的小型活动。

documentation:

  

您可以将片段视为活动的模块化部分,它具有自己的生命周期,接收自己的输入事件,并且可以在活动运行时添加或删除(类似于“子活动”您可以在不同的活动中重复使用。

现在,如果要创建一个包含片段的屏幕,则必须创建1个活动,将片段放入其中,并在需要时进行替换。
要实现此行为,请使用新的Navigation Architecture Component

答案 1 :(得分:0)

检查此链接 Dynamically add fragment into fragment

此外,您可能要考虑使用自定义视图而不是嵌套片段,这会使事情更可重用。


class YourCustomView extends FrameLayout {
    public YourCustomView(@NonNull Context context) {
        super(context);
        init();
    }

    public YourCustomView(@NonNull Context context, @Nullable AttributeSet attrs) {
        super(context, attrs);
        init();
    }

    public YourCustomView(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        init();
    }

    private void init(){
        LayoutInflater.from(getContext()).inflate(R.layout.your_layour,this);
    }
}

然后,您可以通过在自定义视图上调用findViewById()来获取布局中的视图