我是android开发的新手。
我创建了一个包含视图,按钮,约束等的Fragment
,我称之为fragment_code_activation_circles
。现在,我想将其添加到新的片段中,假设它是“主要”片段,并且包含我确实创建的所有其他片段,并且我想为其设置约束,但是我不知道如何添加它。我试图从通用面板上将{}<fragment>
拖到“设计”选项卡上的屏幕上,但没有成功。那有可能还是我做了我不应该做的事情?在iOS上,您只需将View
类的任何子级添加到父级视图中,然后轻松设置其约束即可。
答案 0 :(得分:1)
您不能将活动放置在片段内-片段只能用于放置在活动内。
您可以在活动中放置任意数量的片段,但不能将活动放置在片段内。
将片段视为可以放置在活动中的小型活动。
您可以将片段视为活动的模块化部分,它具有自己的生命周期,接收自己的输入事件,并且可以在活动运行时添加或删除(类似于“子活动”您可以在不同的活动中重复使用。
现在,如果要创建一个包含片段的屏幕,则必须创建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()
来获取布局中的视图