代码拉取完成,页面将自动刷新
这个组件提供类似flutter的scaffold小部件的解决方案 提供了 顶部导航 导航点击事件以及 底部切换点击事件
<!-- https://mvnrepository.com/artifact/com.gitee.blueskyliu/BottomNavigationF -->
<dependency>
<groupId>com.gitee.blueskyliu</groupId>
<artifactId>BottomNavigationF</artifactId>
<version>0.0.2</version>
</dependency>
工具类RouterUtil
方法名 | 参数 | 选填参数 |
---|---|---|
navigate | AbilitySlice abilitySlice 当前页, Class classTo 目标页,Map<String,Object> map | Map<String,Object> map |
方法名 | 参数 | 选填参数 |
---|---|---|
navigate | AbilitySlice abilitySlice当前页 , AbilitySlice abilitySliceTo 目标页,Map<String,Object> map | Map<String,Object> map |
tabbar工具方法
Scaffold init = new Scaffold((((FractionAbility) getAbility())),appBar, body, bottomNavigation).init();
Component scaffold = init.getScaffold();
FractionUtil fractionUtil = init.getFractionUtil();
fractionUtil.show(1);//打开底部导航索引为1
根据实际情况修改你们的需求
DirectionalLayout parse =(DirectionalLayout) LayoutScatter.getInstance(getContext()).parse(ResourceTable.Layout_ability_main, null, false);
AppBar appBar = new AppBar();
appBar.setTitle("自定义导航");
appBar.setLeadingId(ResourceTable.Media_arrow_left);
BottomNavigation bottomNavigation = new BottomNavigation();
BottomNavViewModel bottomNavViewModel = new BottomNavViewModel();
bottomNavigation.setBottomNavItems(bottomNavViewModel.initBottomNavFractions());
List<Fraction> fractions = bottomNavViewModel.initBottomNavFractionsBody(this);
Body body = new Body();
body.setFractions(fractions);
// appBar
Scaffold init = new Scaffold((((FractionAbility) getAbility())),appBar, body, bottomNavigation).init();
Component scaffold = init.getScaffold();
parse.addComponent(scaffold);
init.setOnNavClickListener(new OnNavClickListener() {
@Override
public void onLeading() {
LogUtil.info("ontapNav", "点击了");
}
});
init.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onTap(int index) {
LogUtil.info("自定义监听", Integer.toString(index));
}
});
setUIContent(parse);
问题文件 package com.llt.bottomnavigationf 包 中的Scaffold类
/**
* 初始化 数据 fraction 这里放到 asyncDispatch异步线程中 就没问题不会出现闪退问题
*/
//问题原因是 FractionUtil类中的 initTabberPage方法 submit操作导致的
abilitySlice.getUITaskDispatcher().asyncDispatch(new Runnable() {
@Override
public void run() {
fractionUtil=new FractionUtil(
body.getFractions(),
currentSaveIndex,
abilitySlice,
ResourceTable.Id_scaffold_main_content);
}
});
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。