XPage supports two ways to register pages:
1. Static Registration (via assets)
Create a corepage.json file in your assets folder. Define an array of page objects containing name, classPath, and optional params.
2. Dynamic Registration (via Application) [Recommended]
Automatic Registration: If you use the @Page annotation on your XPageFragment classes, XPage automatically generates a [moduleName]PageConfig class. Use its getPages() method during initialization.
Manual Registration: Implement a custom PageConfiguration and override registerPages to return a list of PageInfo objects.
// assets/corepage.json
[
{
"name": "Test Page 1",
"classPath": "com.xuexiang.xpagedemo.fragment.TestFragment1",
"params": ""
}
]
// Automatic Registration in Application
PageConfig.getInstance()
.setPageConfiguration(new AutoPageConfiguration())
.debug("PageLog")
.setContainActivityClazz(XPageActivity.class)
.init(this);
// Manual Registration in Application
PageConfig.getInstance()
.setPageConfiguration(new PageConfiguration() {
@Override
public List<PageInfo> registerPages(Context context) {
List<PageInfo> pageInfos = new ArrayList<>();
addPageInfoAndSubPages(pageInfos, MainFragment.class);
pageInfos.add(PageConfig.getPageInfo(DateReceiveFragment.class));
return pageInfos;
}
})
.debug("PageLog")
.init(this);